mcpField
M
MCP-Haskell (hs-mcp)

MCP-Haskell (hs-mcp)

ローカル
github.com/buecking開発ツール2563 週間前に更新

MCP-Haskell (hs-mcp) について

MCP-Haskell(hs-mcp)は、MCP サーバーを構築するための Haskell 実装のモデルコンテキストプロトコルです。Haskell アプリケーションから Claude などのクライアントに、ツール、リソース、プロンプトを公開できます。Haskell で MCP サーバーを書きたい開発者を対象としています。

主な機能

  1. 01MCP プロトコルの中核機能の実装
  2. 02ローカルプロセス通信向けの StdIO トランスポート
  3. 03JSON-RPC によるメッセージ処理
  4. 04ツール、リソース、プロンプトのサポート
  5. 05テストスイートの同梱

活用シーン

  1. 01Haskell でカスタム MCP サーバーを作成する
  2. 02同梱のエコーサーバーで MCP 機能を検証する
  3. 03MCP Inspector や Claude Desktop でサーバーをデバッグする

MCP 対応

サーバー側のライブラリとして、Haskell アプリケーションがツール、リソース、プロンプトを Claude Desktop などの MCP クライアントに公開します。記載されているトランスポートは StdIO のみです。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MCP-Haskell (hs-mcp)

Model Context Protocol (MCP) の Haskell 実装です。

概要

MCP-Haskell (hs-mcp) は Model Context Protocol の Haskell 実装を提供し、Haskell アプリケーションから Claude などの MCP 互換クライアントにツール、リソース、プロンプトを公開できます。

主な機能:

  • MCP プロトコルの完全な実装
  • ローカルプロセス通信用の StdIO トランスポート
  • JSON-RPC メッセージング
  • リソース、ツール、プロンプトのサポート
  • 包括的なテストスイート

インストール

# Clone the repository
git clone github.com:buecking/hs-mcp.git
cd hs-mcp

# direnv
# echo 'use flake' > .envrc
direnv allow

# nix
nix develop

# Build the project
cabal build

使用方法

シンプルなサーバーの作成
import Network.MCP.Server
import Network.MCP.Types
import Network.MCP.Server.StdIO

main :: IO ()
main = do
  -- Create server
  let serverInfo = Implementation "my-server" "1.0.0"
      serverCapabilities = ServerCapabilities
        { resourcesCapability = Just $ ResourcesCapability True
        , toolsCapability = Just $ ToolsCapability True
        , promptsCapability = Nothing
        }
  
  server <- createServer serverInfo serverCapabilities
  
  -- Register resources (optional)
  let resource = Resource 
        { resourceUri = "my://resource"
        , resourceName = "My Resource"
        , resourceDescription = Just "Description"
        , resourceMimeType = Just "text/plain"
        , resourceTemplate = Nothing
        }
  
  registerResources server [resource]
  
  -- Register resource read handler
  registerResourceReadHandler server $ \request -> do
    -- Implement resource reading logic
    ...

  -- Register tools (optional)
  let tool = Tool 
        { toolName = "my-tool"
        , toolDescription = Just "My tool"
        , toolInputSchema = "{...}" -- JSON schema
        }
  
  registerTools server [tool]
  
  -- Register tool call handler
  registerToolCallHandler server $ \request -> do
    -- Implement tool execution logic
    ...
  
  -- Start the server with StdIO transport
  runServerWithSTDIO server
サーバーの例

このプロジェクトには、MCP の機能を実演するエコーサーバーの例が含まれています。

# Build and run the example server
cabal run mcp-echo-server

MCP Inspector または Claude Desktop でテストできます。

テスト

テストスイートを実行します。

cabal test

プロトコルの互換性

この実装は Model Context Protocol の仕様に準拠しており、次のものと互換性があります。

  • Claude Desktop
  • MCP Inspector
  • 仕様に準拠したその他の MCP クライアント

プロジェクト構成

  • src/Network/MCP/Types.hs - MCP の中核となる型
  • src/Network/MCP/Transport/ - トランスポートの実装
  • src/Network/MCP/Server/ - サーバーの実装
  • Examples/ - 実装例
  • Test/ - テストスイート

コントリビューション

コントリビューションを歓迎します!お気軽にプルリクエストを送信してください。

ライセンス

このプロジェクトは BSD-3-Clause License の下でライセンスされています。詳細については LICENSE ファイルをご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。