mcpforge
mcpforge
5行のPythonコードで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 stdiomcpforgeを選ぶ理由
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サーバーが完成しました。
仕組み
@serveはクラスをMCPサーバー(名前、バージョン、機能)としてタグ付けします。@toolはメソッドをMCPツールとして登録します。@resource(uri=...)はメソッドをMCPリソースとして登録します。mcpforgeは各メソッドのシグネチャをイントロスペクトし、JSON Schemaを生成します。プリミティブ、
list[T]、dict[str, T]、Literal[...]、Optional[T]、データクラス、Pydanticモデルがすべてそのまま動作します。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:HttpToolsFilesystemTools は list_dir、read_file、search を公開し、パストラバーサルチェックでサンドボックス化されています。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 |
| 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 を参照してください。
作者: thechifura。quantflow および strategos の兄弟プロジェクト。
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