Skip to main content
Glama

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:local

http://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-mcpconnected)を確認できる。開発標準に関する質問(例: 「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コンテナ品質チェック標準)がヒットすれば、コンテナ起動→インデックス構築→検索まで一連の動作確認が取れたことになる。

環境変数

変数名

デフォルト

説明

KNOWLEDGE_SOURCE

sample

知識ソース。PoCではsampleのみ対応

KNOWLEDGE_PATH

./sample-knowledge

知識ディレクトリのパス

AUTH_ENABLED

false

trueにするとAzureProvider認証を有効化(AZURE_CLIENT_ID等が必須)

MCP_HOST

127.0.0.1(Dockerイメージ内では0.0.0.0

待ち受けホスト

MCP_PORT

8000

待ち受けポート

開発

uv run ruff check .
uv run mypy .
uv run pytest
uv run pip-audit

uv 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-standards

disable-model-invocation: true を設定しているため、ユーザーが明示的に起動したときのみ動く(コミット・push・PR作成まで外部状態を変更するため、モデルの自動判断では起動させない)。

このスキルはプロジェクトスコープのため、本リポジトリ内で作業しているときのみ起動する。他リポジトリで得た実践知を書き戻す場合は、出所(リポジトリ・コミットSHA等)を入力として渡すこと。出所は文書本文の ## 由来 節へ記録される。

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/mitonattou919/dev-standards-mcp'

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