dev-standards-mcp
dev-standards-mcp
社内開発標準をAIコーディングエージェントが一貫して参照・遵守できるMCP(Model Context Protocol)サーバ。
詳細な設計方針は CLAUDE.md を参照。
セットアップ(ローカル / uv)
uv sync起動(ローカル / uv)
uv run python main.pyデフォルトでは http://127.0.0.1:8000/mcp で待ち受ける。sample-knowledge/ の内容から起動時にオンメモリでSQLite FTS5インデックスを構築する。
起動(Docker)
イメージのビルド:
docker build -t dev-standards-mcp:local .コンテナの起動:
docker run --rm -p 8000:8000 dev-standards-mcp:localhttp://localhost:8000/mcp にMCPクライアント(Claude Code等)から接続できる。
MCPクライアントからの動作確認
コンテナ(またはローカルのuv run python main.py)を起動した状態で、以下のいずれかの方法で疎通・Tool呼び出しを確認できる。
方法A: Claude Code から接続
claude mcp add --transport http dev-standards-mcp http://localhost:8000/mcp追加後、Claude Codeのセッション内で /mcp と入力すると接続状態(dev-standards-mcp が connected)を確認できる。開発標準に関する質問(例: 「Dockerの品質チェックで何をすればいい?」)を投げると、search_standards 等のToolが自動的に呼び出される。
不要になったら以下で削除する。
claude mcp remove dev-standards-mcp方法B: MCP Inspector(GUIで対話的に確認)
npx @modelcontextprotocol/inspector http://localhost:8000/mcpブラウザが開き、search_standards / get_standard / get_applicable_standards / get_review_checklist の4 Toolを一覧・実行できる。
方法C: curlで直接JSON-RPCを叩く(ツール不要)
MCPのStreamable HTTPトランスポートはセッションIDを要求するため、initializeのレスポンスヘッダーからMcp-Session-Idを取り出して以降のリクエストに付与する。
# 1. initialize してセッションIDを取得
curl -sD /tmp/mcp_headers.txt http://localhost:8000/mcp -X POST \
-H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"manual-check","version":"1.0"}}}'
SESSION_ID=$(grep -i "mcp-session-id" /tmp/mcp_headers.txt | awk '{print $2}' | tr -d '\r')
# 2. initialized通知を送る(レスポンスなし・202が返る)
curl -s -o /dev/null -w "HTTP %{http_code}\n" http://localhost:8000/mcp -X POST \
-H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
-H "Mcp-Session-Id: $SESSION_ID" \
-d '{"jsonrpc":"2.0","method":"notifications/initialized"}'
# 3. search_standards を呼び出す
curl -s http://localhost:8000/mcp -X POST \
-H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
-H "Mcp-Session-Id: $SESSION_ID" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"search_standards","arguments":{"query":"docker"}}}'standard-003(Dockerコンテナ品質チェック標準)がヒットすれば、コンテナ起動→インデックス構築→検索まで一連の動作確認が取れたことになる。
環境変数
変数名 | デフォルト | 説明 |
|
| 知識ソース。PoCでは |
|
| 知識ディレクトリのパス |
|
|
|
|
| 待ち受けホスト |
|
| 待ち受けポート |
開発
uv run ruff check .
uv run mypy .
uv run pytest
uv run pip-audituv run pytest にはDockerイメージのbuild・run・MCPヘルスチェックを行う統合テスト(tests/test_docker_integration.py)が含まれる。Dockerが利用できない環境では自動的にスキップされる。
Dockerfileを変更した場合は、Hadolintでの静的解析も実行すること。
docker run --rm -i hadolint/hadolint < Dockerfileナレッジの執筆
sample-knowledge/ へ文書を追加・更新するときは、Claude Codeのプロジェクトスキル coauthoring-standards(.claude/skills/coauthoring-standards/SKILL.md)を使う。既存文書の検索による重複回避、type別の配置先とID採番、OKF必須項目の充足、index.md の索引更新、検証、PR作成までを手順化してある。
/coauthoring-standardsdisable-model-invocation: true を設定しているため、ユーザーが明示的に起動したときのみ動く(コミット・push・PR作成まで外部状態を変更するため、モデルの自動判断では起動させない)。
このスキルはプロジェクトスコープのため、本リポジトリ内で作業しているときのみ起動する。他リポジトリで得た実践知を書き戻す場合は、出所(リポジトリ・コミットSHA等)を入力として渡すこと。出所は文書本文の ## 由来 節へ記録される。
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/mitonattou919/dev-standards-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server