Demo HTTP MCP Server
test-http-mcp
http-mcpパッケージを使用してPythonで実装されたデモ用Model Context Protocol (MCP) サーバーです。HTTP (Starlette/Uvicorn) またはstdio経由で実行でき、MCP対応クライアントに対してサンプルツールやプロンプトを公開します。このプロジェクトには、NVD (National Vulnerability Database) を通じて脆弱性を照会するためのチャットインターフェースを提供するReactフロントエンドが含まれています。

プロジェクト構成
test-http-mcp/
├── backend/ # Python backend (FastAPI + MCP server)
│ ├── app/ # Application source code
│ │ ├── app.py # FastAPI app, routes, MCP mount
│ │ ├── main.py # Entry points (HTTP / stdio)
│ │ ├── agen_memory.py # SQLite message persistence
│ │ ├── config.py # Settings via pydantic-settings
│ │ ├── tools/ # MCP tools (CPE/CVE search via NVD)
│ │ └── prompts/ # MCP prompt templates
│ ├── pyproject.toml # Python deps & scripts
│ ├── uv.lock # Locked dependencies
│ ├── ruff.toml # Linter config
│ ├── mypy.ini # Type-checker config
│ └── .envrc # direnv auto-activation
├── frontend/ # React + TypeScript frontend (Vite)
│ ├── src/
│ │ ├── components/ # ChatApp, ChatInput, MessageList, MessageBubble
│ │ ├── api.ts # API client (fetch history, stream messages)
│ │ ├── types.ts # Shared TypeScript types
│ │ ├── App.tsx # Root component
│ │ └── App.css # Styles
│ ├── vite.config.ts # Vite config with dev proxy
│ └── package.json # Node dependencies
├── AGENTS.md
├── LICENSE
└── README.md要件
Python 3.13
Node.js 18+ および npm
uv(推奨) またはpip
インストール
バックエンド ( uv を使用):
cd backend
uv run python -V # creates a venv and syncs deps from pyprojectバックエンド ( pip を使用):
cd backend
python3.13 -m venv .venv
source .venv/bin/activate
pip install .フロントエンド:
cd frontend
npm install実行
開発 (フロントエンドとバックエンドを個別に実行)
バックエンドの起動:
cd backend
uv run run-app
# → API on http://localhost:8000
# → MCP endpoint on http://localhost:8000/mcp/フロントエンド開発サーバーの起動 (別のターミナルで実行):
cd frontend
npm run dev
# → UI on http://localhost:5173 (proxies /api/* → backend)本番環境 (バックエンドがビルド済みフロントエンドを配信)
フロントエンドをビルドし、バックエンドを起動:
cd frontend && npm run build && cd ..
cd backend && uv run run-app
# → Everything on http://localhost:8000実行 (stdioモード)
Cursorやその他のMCPクライアントでの使用
HTTPモード用の .cursor/mcp.json の例:
{
"mcpServers": {
"test-http-mcp": {
"type": "http",
"url": "http://localhost:8000/mcp/",
"headers": {
"Authorization": "Bearer $TEST_TOKEN"
}
}
}
}Gemini での使用:
{
"mcpServers": {
"test": {
"httpUrl": "http://localhost:8000/mcp/",
"timeout": 5000,
"headers": {
"Authorization": "Bearer TEST_TOKEN"
}
}
}
}stdio経由で接続するための .cursor/mcp.json エントリの例:
{
"mcpServers": {
"test_studio": {
"command": "uv",
"args": ["run", "--project", "backend", "run-stdio"],
"env": { "AUTHORIZATION_TOKEN": "Bearer TEST_TOKEN" }
}
}
}このサーバーが公開するもの
ツール (
backend/app/tools/を参照):search_cpe(product, version, vendor)— NVD経由でCommon Platform Enumerationsを検索search_cve(cpe_name)— 指定されたCPEのCommon Vulnerabilities and Exposuresを検索
プロンプト (
backend/app/prompts/を参照):sync_nvd_search(dependency, version)— シンプルな脆弱性検索プロンプトasync_nvd_search(dependency, version)— 事前に取得したCVEデータを使用した高度なプロンプト
プロジェクトスクリプト
backend/pyproject.toml に2つのコンソールエントリーポイントが定義されています:
run-app→app.main:run_httprun-stdio→app.main:run_stdiorun-app-local→app.app:main(自動リロード付き)
開発
一般的なタスク ( backend/ ディレクトリから実行):
uv run ruff check . # lint
uv run mypy . # type check
uv run pytest # tests
uv run mdformat . # format markdownフロントエンドタスク ( frontend/ ディレクトリから実行):
npm run dev # start dev server
npm run build # production build
npm run lint # lint with ESLint
npx tsc --noEmit # type check実装上の注意
FastAPIアプリは
backend/app/app.pyで定義されており、/mcpにhttp_mcp.server.MCPServerをマウントしています。チャットインターフェースは、MCPツールを呼び出して脆弱性を検索できるGeminiエージェントを備えた
pydantic-aiを使用しています。チャット履歴は
agen_memory.pyを介してローカルのSQLiteデータベースに永続化されます。Reactフロントエンドは、改行区切りのJSONとしてレスポンスをストリーミングし、
markedライブラリを使用してマークダウンをレンダリングします。本番環境では、バックエンドはSPAフォールバックルーティングを使用して
frontend/dist/からビルド済みフロントエンドを配信します。開発環境では、Viteが
/api/*リクエストをポート8000のバックエンドにプロキシします。
ライセンス
MIT — LICENSE を参照してください。
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/yeison-liscano/demo_http_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server