simple-mcp
A simple HTTP-based MCP server that provides demo tools (get_test_string, echo, check_maintenance), greeting prompts, and test resources, with optional OAuth 2.1 support.
README
simple-mcp
MCP(Model Context Protocol)に準拠したシンプルな HTTP ベースの MCP Server です。 Python 標準ライブラリのみで動作し、ツール・プロンプト・リソースを提供します。
提供する機能
Tools
| ツール名 | 説明 |
|---|---|
get_test_string |
テスト用文字列を返します(prefix オプション対応) |
echo |
入力メッセージをそのまま返します |
check_maintenance |
secret_notes.txt のメンテナンス情報を返します |
Prompts
| プロンプト名 | 説明 |
|---|---|
greeting |
挨拶プロンプト(name 引数対応) |
Resources
| URI | 説明 |
|---|---|
demo://test-data |
デモ用テストデータ |
その他の機能
- OAuth 2.1 Bearer トークン検証(JWKS / RS256)※オプション・デフォルト無効
- CORS 対応
- RFC 9728 Protected Resource Metadata エンドポイント(
/.well-known/oauth-protected-resource) - MCP プロトコルバージョン
2024-11-05
必要環境
- Python 3.8 以上
- OAuth 認証を使う場合のみ追加パッケージが必要(
requirements.txt参照)
セットアップ
# 仮想環境の作成
python3 -m venv venv
source venv/bin/activate
# 依存パッケージのインストール(OAuth を使わない場合は省略可)
pip install -r requirements.txt
# 設定ファイルの準備
cp mcp_server_config.json.example mcp_server_config.json
# メンテナンス情報ファイルの準備(自動生成されますが、手動で用意も可能)
mkdir -p mcp-server-data
cp mcp-server-data/secret_notes.txt.example mcp-server-data/secret_notes.txt
起動
フォアグラウンド実行(手元での検証用)
# 設定ファイルのポートで起動(デフォルト: 9000)
python3 mcpServer.py
# ポートを指定して起動
python3 mcpServer.py 9001
起動後、http://localhost:9000/ でリクエストを待ち受けます。
バックグラウンド実行(本番運用 / Ubuntu 推奨)
scripts/ 以下のスクリプトを使うと、ターミナルを切断しても継続動作するバックグラウンド起動ができます。
ログは logs/server.log に出力され、tail -f でリアルタイムに確認できます。
# 初回のみ:スクリプトに実行権限を付与
chmod +x scripts/*.sh
# 起動(設定ファイルのポート / デフォルト 9000)
./scripts/start.sh
# ポートを指定して起動
./scripts/start.sh 9001
# ログをリアルタイム確認(別ターミナルで実行)
tail -f logs/server.log
# 状態確認
./scripts/status.sh
# 停止
./scripts/stop.sh
補足: バックグラウンド起動時は
python3 -u(出力バッファリング無効化)で動かすため、tail -fで遅延なくログが表示されます。プロセスは PID ファイル(mcp-server.pid)で管理され、 二重起動は防止されます。
動作確認
# ヘルスチェック(GET)
curl http://localhost:9000/
# initialize リクエスト(POST)
curl -X POST http://localhost:9000/ \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}'
# ツール一覧の取得
curl -X POST http://localhost:9000/ \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'
# ツールの実行(echo)
curl -X POST http://localhost:9000/ \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"echo","arguments":{"message":"hello"}}}'
設定(mcp_server_config.json)
| 項目 | 説明 | デフォルト |
|---|---|---|
host |
待ち受けホスト | 0.0.0.0 |
port |
待ち受けポート | 9000 |
server_info |
サーバー名・バージョン | simple-demo-server v1.0.0 |
secret_file_path |
メンテナンス情報ファイルのパス | ./mcp-server-data/secret_notes.txt |
check_maintenance_description |
check_maintenance ツールの説明文 |
(例を参照) |
check_maintenance_prefix |
返却時のプレフィックス文字列 | maintenance information |
oauth |
OAuth 認証設定(enabled / issuer / jwks_uri / audience / scopes) |
enabled: false |
ディレクトリ構成
simple-mcp/
├── mcpServer.py # MCP Server 本体
├── mcp_server_config.json.example # 設定ファイル例
├── scripts/
│ ├── start.sh # バックグラウンド起動(nohup + PID管理)
│ ├── stop.sh # 停止
│ └── status.sh # 状態確認
├── mcp-server-data/
│ └── secret_notes.txt.example # メンテナンス情報ファイル例
├── logs/ # ログ出力先(.gitignore 対象・実行時に生成)
├── requirements.txt # OAuth 利用時の依存パッケージ
└── README.md
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。