Skip to main content
Glama

mcpforge

5行のPythonコードでMCPサーバーを構築。

Python License: MIT Status MCP

Before                              After
──────                              ─────
~200 lines of                       @serve
JSON-RPC stdio                      class MarketTools:
boilerplate, schema                     @tool
generation, error                       def latest_price(self, symbol: str) -> float: ...
handling, lifecycle                     @tool
management.                             def search(self, query: str) -> list[dict]: ...

                                    $ python -m mcpforge run market:MarketTools
                                    ✓ MCP server running on stdio

mcpforgeを選ぶ理由

Model Context Protocol (MCP) は、ClaudeやCursor、そして急速に拡大するAIツールエコシステムが外部関数を呼び出すために使用するオープン標準です。強力ですが、サーバーを書くのは現在非常に面倒です。

プロジェクトごとに同じJSON-RPCのフレームワーク、スキーマ生成、ディスパッチループ、エラーハンドリングを書く必要があります。mcpforgeはこれらすべてを不要にします。 クラスにアノテーションを付け、メソッドに型ヒントを付けるだけです。これで完了です。

from mcpforge import serve, tool

@serve(name="market_tools", version="0.1.0")
class MarketTools:
    """Market data tools for AI agents."""

    @tool(description="Get the latest price for a symbol")
    def latest_price(self, symbol: str) -> float:
        return fetch_price(symbol)

    @tool
    def search(self, query: str, limit: int = 10) -> list[dict]:
        """Search ticker symbols matching `query`."""
        return run_search(query, limit)

これで、仕様に完全に準拠したMCPサーバーが完成します。型ヒントはJSON Schemaになり、ドキュメント文字列はツール説明になり、戻り値は自動的にシリアライズされます。

60秒クイックスタート

pip install mcpforge
# hello.py
from mcpforge import serve, tool

@serve(name="hello", version="0.1.0")
class HelloTools:
    @tool
    def greet(self, name: str = "world") -> str:
        """Say hello to someone."""
        return f"Hello, {name}!"
python -m mcpforge run hello:HelloTools

これで、stdio経由でJSON-RPC 2.0を話す動作可能なMCPサーバーが完成しました。

仕組み

  1. @serve はクラスをMCPサーバー(名前、バージョン、機能)としてタグ付けします。

  2. @tool はメソッドをMCPツールとして登録します。

  3. @resource(uri=...) はメソッドをMCPリソースとして登録します。

  4. mcpforgeは各メソッドのシグネチャをイントロスペクトし、JSON Schemaを生成します。プリミティブ、list[T]dict[str, T]Literal[...]Optional[T]、データクラス、Pydanticモデルがすべてそのまま動作します。

  5. python -m mcpforge run mod:Class はstdioループを起動し、initialize / tools/list / tools/call / resources/list / resources/read を処理し、適切なコードでJSON-RPCエラーを報告します。

外部のMCP SDKは不要です。標準ライブラリの json と、スキーマを便利にするための pydantic だけを使用します。

組み込みサーバー

今日からすぐに使える2つのサーバーが同梱されています:

# Filesystem tools (sandboxed to a root directory)
python -m mcpforge run mcpforge.builtin.filesystem:FilesystemTools

# HTTP fetch tools
python -m mcpforge run mcpforge.builtin.http:HttpTools

FilesystemToolslist_dirread_filesearch を公開し、パストラバーサルチェックでサンドボックス化されています。HttpTools はサイズ制限付きの fetch_url を公開します。

Claude Desktopへの組み込み

~/Library/Application Support/Claude/claude_desktop_config.json に追加します:

{
  "mcpServers": {
    "market": {
      "command": "python",
      "args": ["-m", "mcpforge", "run", "market:MarketTools"],
      "cwd": "/path/to/your/project"
    }
  }
}

Claude Desktopを再起動してください。会話の中にツールが表示されます。

Cursorへの組み込み

~/.cursor/mcp.json

{
  "mcpServers": {
    "market": {
      "command": "python",
      "args": ["-m", "mcpforge", "run", "market:MarketTools"]
    }
  }
}

比較

機能

mcpforge

mcp SDK

FastMCP

手書き

単一デコレータ

Yes

No

Yes

No

型からの自動JSON Schema生成

Yes

No

Yes

No

Pydantic v2サポート

Yes

Yes

Yes

No

pyd以外の必須依存関係ゼロ

Yes

No

No

N/A

組み込みfs / httpサーバー

Yes

No

No

No

Hello Worldの行数

~5

~40

~10

~200

ワイヤーフォーマットの確認

python -m mcpforge inspect market:MarketTools

クライアントが確認する正確な tools/list ペイロードを出力します。

ロードマップ

  • [x] ツール (call, list)

  • [x] リソース (read, list)

  • [x] 型ヒント -> JSON Schema (Pydantic v2, dataclasses, Literal, Optional)

  • [x] 組み込みファイルシステムおよびHTTPサーバー

  • [ ] リソースサブスクリプション

  • [ ] プロンプト機能

  • [ ] サンプリング機能

  • [ ] WebSocket / HTTP-SSEトランスポート (オプションの [http] エクストラ)

  • [ ] 非同期ツール (async def)

  • [ ] OTelトレーシングフック

ライセンス

MIT — LICENSE を参照してください。

作者: thechifuraquantflow および strategos の兄弟プロジェクト。

Install Server
A
license - permissive license
B
quality
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/vigilancetrent/mcpforge'

If you have feedback or need assistance with the MCP directory API, please join our Discord server