インストール
コンテンツ詳細
代替品
インストール
{
"mcpServers": {
"medical-apis": {
"url": "https://medical-mcps-production.up.railway.app/tools/unified/mcp"
}
}
}
{
"mcpServers": {
"reactome": {
"url": "https://medical-mcps-production.up.railway.app/tools/reactome/mcp"
},
"chembl": {
"url": "https://medical-mcps-production.up.railway.app/tools/chembl/mcp"
},
"pubmed": {
"url": "https://medical-mcps-production.up.railway.app/tools/pubmed/mcp"
}
}
}🚀 生物学API MCPサーバー
研究目的で複数の生物学および医学データベースを統合したMCPサーバーです。
🚀 クイックスタート
本番サーバーへの接続
このMCPサーバーを使用する最も簡単な方法は、本番環境のデプロイに接続することです。すべてのAPIは統一エンドポイントを通じて利用でき、すべてのツールに一度にアクセスできます。
本番URL: https://medical-mcps-production.up.railway.app/tools/unified/mcp
Cursor(または他のMCPクライアント)での設定
これをあなたの .cursor/mcp.json(または同等のMCPクライアント設定ファイル)に追加してください。
{
"mcpServers": {
"medical-apis": {
"url": "https://medical-mcps-production.up.railway.app/tools/unified/mcp"
}
}
}
接続後の利用可能な機能
接続すると、14の生物学および医学APIを通じて100以上のツールにアクセスできます。
- 経路情報: Reactome、KEGG、Pathway Commons
- 遺伝子とタンパク質: UniProt、MyGene.info、Node Normalization
- 変異情報: MyVariant.info、GWAS Catalog
- 疾患情報: OMIM、MyDisease.info
- 薬剤情報: ChEMBL、MyChem.info、OpenFDA
- 文献情報: PubMed/PubTator3
- 臨床試験情報: ClinicalTrials.gov、NCI Clinical Trials
- 薬剤再利用プレイブック: バイオメディカルデータの探索に関する構造化された戦略
例: 遺伝子の検索
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "mygene_get_gene",
"arguments": {
"gene_id_or_symbol": "TP53"
}
}
}
個別のAPIエンドポイント
個別のAPIを別々に使用したい場合は、各APIに独自のエンドポイントがあります。
/tools/reactome/mcp- Reactomeのみ/tools/pubmed/mcp- PubMedのみ/tools/chembl/mcp- ChEMBLのみ ... (全リストは利用可能なエンドポイントを参照)
ローカル開発
ローカルで独自のインスタンスを実行するには、以下のいずれかの方法を選択できます。
- Docker Composeを使用する(迅速なセットアップに推奨) - Docker Composeのセットアップを参照
- Python/uvで直接実行する - 以下のサーバーの実行を参照
✨ 主な機能
✅ 実装されたAPI
- Reactome API - 経路情報、遺伝子/タンパク質クエリ、疾患関連付け
- KEGG API - 経路マップ、遺伝子注釈、疾患および薬剤情報
- UniProt API - タンパク質配列、機能注釈、疾患関連付け
- OMIM API - 遺伝性疾患情報、遺伝子-疾患関連付け(APIキーが必要)
- GWAS Catalog API - 遺伝的関連付け、変異情報、研究メタデータ
- Pathway Commons API - 統合経路データ、経路相互作用、遺伝子/タンパク質ネットワーク
- Node Normalization API - CURIE正規化、データベース間の識別子マッピング
- ChEMBL API - 薬剤-標的相互作用、生物活性データ、作用機序、薬剤適応症
- ClinicalTrials.gov API - 臨床試験検索、研究メタデータ、試験ステータス
- PubMed/PubTator3 API - バイオメディカル文献検索、記事取得、プレプリント検索
- OpenFDA API - FDAの有害事象報告、薬剤ラベル、デバイスイベント、薬剤承認
- MyVariant.info API - 遺伝的変異注釈、集団頻度、臨床的意義
- BioThings Suite APIs - MyGene.info(遺伝子注釈)、MyDisease.info(疾患情報)、MyChem.info(薬剤/化学物質データ)
- NCI Clinical Trials API - 癌臨床試験検索とメタデータ(APIキーが必要)
- Drug Repurposing Playbooks - 薬剤再利用の発見に関する構造化された戦略(PLAYBOOKS.mdを参照)
📦 インストール
オプション1: Docker Compose(推奨)
MCPバックエンドとSearXNG検索エンジンの両方を実行する最も簡単な方法です。
# 自動再構築ですべてのサービスを起動
make docker-watch
# またはバックグラウンドで起動
make docker-up
# ログを表示
make docker-logs
# サービスを停止
make docker-down
サービスは以下のURLで利用可能です。
- MCPバックエンド: http://localhost:8000
- SearXNG: http://localhost:8888
オプション2: ローカルPythonインストール
# uvを使用して依存関係をインストール
cd /path/to/medical-mcps
uv sync
💻 使用例
基本的な使用法
例: 遺伝子の検索
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "mygene_get_gene",
"arguments": {
"gene_id_or_symbol": "TP53"
}
}
}
高度な使用法
複数のAPIをCursorで設定する例
オプション1: 統一エンドポイントを使用する(推奨) すべてのAPIに一度にアクセスします。
{
"mcpServers": {
"medical-apis": {
"url": "https://medical-mcps-production.up.railway.app/tools/unified/mcp"
}
}
}
オプション2: 個別のエンドポイントを使用する 各APIに別々の接続を使用します。
{
"mcpServers": {
"reactome": {
"url": "https://medical-mcps-production.up.railway.app/tools/reactome/mcp"
},
"chembl": {
"url": "https://medical-mcps-production.up.railway.app/tools/chembl/mcp"
},
"pubmed": {
"url": "https://medical-mcps-production.up.railway.app/tools/pubmed/mcp"
}
}
}
📚 ドキュメント
サーバーの実行
サーバーは、HTTPを介したリモートホスティングに Streamable HTTP トランスポートを使用しています(MCP仕様を参照)。
uv sync を実行した後、サーバーを実行できます。
Makefileを使用する(開発に推奨)
# uvicornとlivereloadでサーバーを起動(コード変更時に自動リロード)
make server
uvを直接使用する
# HTTPサーバーを実行
uv run mcp-server
# またはカスタムホスト/ポートで実行
MCP_HOST=0.0.0.0 MCP_PORT=8000 uv run mcp-server
uvicornを直接使用する
# uvicornとlivereloadで実行
uv run uvicorn medical_mcps.http_server:app --reload --host 0.0.0.0 --port 8000
HTTPサーバーは http://localhost:8000(またはあなたが設定したホスト/ポート)で利用可能です。
サーバーは、FastAPI上のASGIアプリとしてマウントされたMCP SDKのStreamable HTTPトランスポートを使用しています。MCPエンドポイントは /mcp で利用可能で、POST(JSON-RPCメッセージの送信)とGET(オプションのSSEストリーム)の両方をサポートしています。
本番環境への接続
MCPサーバーはデプロイされており、以下のURLで利用可能です。
本番環境のベースURL: https://medical-mcps-production.up.railway.app
統一エンドポイント(推奨)
統一エンドポイントを使用して、すべてのAPIに一度にアクセスします。
{
"url": "https://medical-mcps-production.up.railway.app/tools/unified/mcp"
}
これにより、単一の接続を通じてすべてのAPIから100以上のツールにアクセスできます。
個別のAPIエンドポイント
個別のAPIを別々に使用したい場合は、各APIに独自のエンドポイントがあります。
本番環境:
"url": "https://medical-mcps-production.up.railway.app/tools/reactome/mcp"
}
ローカル開発環境:
{
"url": "http://localhost:8000/tools/reactome/mcp"
}
利用可能なエンドポイント
すべてのエンドポイントは本番環境とローカル環境の両方のURLで利用可能です。
/tools/unified/mcp- 統一サーバー(すべてのAPIが統合されています)/tools/reactome/mcp- Reactome API/tools/kegg/mcp- KEGG API/tools/uniprot/mcp- UniProt API/tools/omim/mcp- OMIM API(APIキーが必要)/tools/gwas/mcp- GWAS Catalog API/tools/pathwaycommons/mcp- Pathway Commons API/tools/nodenorm/mcp- Node Normalization API/tools/chembl/mcp- ChEMBL API/tools/ctg/mcp- ClinicalTrials.gov API/tools/pubmed/mcp- PubMed/PubTator3 API/tools/openfda/mcp- OpenFDA API/tools/myvariant/mcp- MyVariant.info API/tools/biothings/mcp- BioThings Suite APIs(MyGene、MyDisease、MyChem)/tools/nci/mcp- NCI Clinical Trials API(APIキーが必要)/tools/playbooks/mcp- Drug Repurposing Playbooks
接続のテスト
本番サーバーにアクセスできるかどうかを、簡単なHTTPリクエストを行ってテストできます。
# 統一エンドポイントをテストする(推奨)
curl https://medical-mcps-production.up.railway.app/tools/unified/mcp \
-X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "method": "initialize", "params": {}, "id": 1}'
# または個別のAPIエンドポイントをテストする
curl https://medical-mcps-production.up.railway.app/tools/reactome/mcp \
-X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "method": "initialize", "params": {}, "id": 1}'
成功したレスポンスは、サーバーが実行中でアクセス可能であることを示します。
HTTPキャッシュ
すべてのAPIクライアントは、hishel(RFC 9111準拠のHTTPキャッシュ)を使用して、レスポンスをディスクに透過的にキャッシュします。これにより、冗長なAPI呼び出しが減少し、パフォーマンスが向上します。
キャッシュの設定
- キャッシュの保存場所:
~/.cache/medical-mcps/api_cache/ - キャッシュの有効期限: 30日(デフォルトのTTL)
- キャッシュの更新: キャッシュされたエントリにアクセスするとTTLがリセットされます (
refresh_ttl_on_access=True) - APIごとのキャッシュファイル: 各APIに独自のSQLiteキャッシュファイルがあります(例:
reactome.db,kegg.db)
キャッシュの動作
- 自動: すべてのHTTPベースのAPIに対してキャッシュがデフォルトで有効になっています。
- 透過的: レスポンスはURL、パラメータ、およびヘッダーに基づいて自動的にキャッシュされます。
- RFC 9111準拠: HTTPキャッシュのセマンティクスとCache-Controlヘッダーを尊重します。
- キャッシュの可視性: キャッシュされたレスポンスを提供するとき、ログに "(from cache)" が表示されます。
キャッシュの無効化
特定のクライアントでキャッシュを無効にするには、初期化時に enable_cache=False を渡します。
client = ReactomeClient(enable_cache=False)
キャッシュのクリア
キャッシュをクリアするには、キャッシュディレクトリを削除します。
rm -rf ~/.cache/medical-mcps/api_cache/
または、個別のAPIキャッシュファイルを削除します。
rm ~/.cache/medical-mcps/api_cache/reactome.db
サポートされるAPI
すべてのHTTPベースのAPIがキャッシュをサポートしています。
- Reactome (httpx)
- KEGG (httpx)
- UniProt (httpx)
- OMIM (httpx)
- GWAS Catalog (httpx)
- Pathway Commons (httpx)
- ClinicalTrials.gov (requests)
- PubMed (httpx)
- OpenFDA (httpx)
- MyVariant.info (httpx)
- BioThings Suite (httpx)
- NCI Clinical Trials (httpx)
注意: ChEMBLはライブラリクライアントを使用しているため(HTTPではない)、キャッシュはライブラリレベルで処理されます。
Sentryによるモニタリング
サーバーには、エラー追跡とパフォーマンスモニタリングのためのオプションのSentry統合が含まれています。Sentryは自動的にMCPツールの実行、プロンプトリクエスト、およびリソースアクセスをインストルメントします。
セットアップ
- sentry.ioからあなたのSentry DSNを取得します。
SENTRY_DSN環境変数を設定します。
export SENTRY_DSN="https://your-dsn@sentry.io/project-id"
設定
Sentryは環境変数を介して設定できます。
SENTRY_DSN- あなたのSentry DSN(Sentryを有効にするには必須)SENTRY_TRACES_SAMPLE_RATE- パフォーマンストレースのサンプルレート(デフォルト:1.0= 100%)SENTRY_SEND_DEFAULT_PII- Sentryにツールの入力/出力を含める(デフォルト:true)SENTRY_ENABLE_LOGS- Sentryにログを送信することを有効にする(デフォルト:true)SENTRY_PROFILE_SESSION_SAMPLE_RATE- プロファイリングセッションのサンプルレート(デフォルト:1.0= 100%)SENTRY_PROFILE_LIFECYCLE- プロファイラのライフサイクルモード(デフォルト:trace- トランザクションがアクティブなときに自動実行)ENVIRONMENT- 環境名(デフォルト:local)
パフォーマンスモニタリング:
- トレーシング: デフォルトで100%のトランザクションをキャプチャします (
traces_sample_rate=1.0) - プロファイリング: デフォルトで100%のセッションをプロファイリングします (
profile_session_sample_rate=1.0) - ログ: デフォルトで有効になっています (
enable_logs=True)
追跡される内容
Sentryは自動的に以下を収集します。
MCP統合:
- ツールの実行: ツール名、引数、結果、および実行エラー
- プロンプトリクエスト: プロンプト名、引数、および内容
- リソースアクセス: リソースURIとアクセスパターン
- リクエストコンテキスト: リクエストID、セッションID、およびトランスポートタイプ
- 実行スパン: すべてのハンドラー呼び出しのタイミング情報
Starlette統合:
- HTTPリクエスト: メソッド、URL、ヘッダー、フォームデータ、JSONペイロード
- エラー: 内部サーバーエラー(5xxステータスコード)を引き起こすすべての例外
- パフォーマンス: リクエストのタイミングとトランザクションデータ
- リクエストデータ: すべてのイベントに添付されます(
send_default_pii=Trueでない限りPIIを除く)
HTTPX統合:
- 外部HTTPリクエスト: APIクライアント(Reactome、KEGG、UniProtなど)によって行われるすべてのHTTPリクエスト
- リクエストスパン: 各外部HTTPリクエストに対してスパンを作成します
- トレースの伝播: トレースが下流のサービスに適切に伝播されることを保証します
Asyncio統合:
- 非同期操作: 非同期コンテキストと操作を追跡します
- 非同期エラー: 非同期関数とタスクのエラーをキャプチャします
プライバシー
デフォルトでは、Sentryはツールの入力/出力やプロンプトの内容(PIIと見なされる)を含めません。このデータを含めるには、SENTRY_SEND_DEFAULT_PII=true を設定してください。
詳細については、Sentry MCP統合ドキュメントを参照してください。
APIキーの取り扱い
重要: MCPサーバーはステートレスなプロキシです。APIキーを保存しません。
クライアントが提供するAPIキーが必要なAPI
認証が必要なAPI(現在はOMIM)の場合、MCPクライアントは各ツール呼び出し時にAPIキーをパラメータとして提供する必要があります。
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "get_entry",
"arguments": {
"mim_number": "104300",
"api_key": "your-omim-api-key-here"
}
}
}
APIキーが必要なAPI:
- OMIM - すべてのツールに
api_keyパラメータが必要です(https://omim.org/api から取得) - NCI Clinical Trials - オプションの
api_keyパラメータ(https://clinicaltrialsapi.cancer.gov/ から取得) - OpenFDA - より高いレート制限のためのオプションの
api_keyパラメータ(https://open.fda.gov/apis/ から取得)
APIキーが不要なAPI:
- Reactome、KEGG、UniProt、GWAS Catalog、Pathway Commons、Node Normalization、ChEMBL、ClinicalTrials.gov、PubMed、MyVariant.info、BioThings Suite(MyGene、MyDisease、MyChem)
将来のAPIのパターン
新しいAPIが認証を必要とする場合、以下のパターンに従ってください。
- すべてのツールに
api_key: strを必須パラメータとして追加します。 - API呼び出し前にAPIキーの存在を検証します。
- キーが欠落している場合は、明確なエラーメッセージを返します。
"Error: API key is required. Get your API key from <url>" - 提供されたキーでリクエストごとにクライアントインスタンスを作成します。
client = APIClient(api_key=api_key) - サーバー設定または環境変数にAPIキーを保存しないでください。
例:
@api_mcp.tool()
async def some_tool(param: str, api_key: str) -> str:
"""Tool description.
Args:
param: Required parameter
api_key: API key (REQUIRED - get from https://api-provider.com)
"""
if not api_key:
return "Error: API key is required. Get your API key from https://api-provider.com"
try:
client = APIClient(api_key=api_key)
return await client.some_method(param)
except Exception as e:
return f"Error calling API: {str(e)}"
利用可能なツール
すべてのツールはAPI名でプレフィックスが付けられています(例: reactome_*)。これにより、どのAPIが使用されているかが明確になります。
Reactomeツール
reactome_get_pathway- 詳細な経路情報を取得します。reactome_query_pathways- キーワードまたは遺伝子/タンパク質名で経路をクエリします。reactome_get_pathway_participants- 経路内のすべての関与者を取得します。reactome_get_disease_pathways- 疾患に関連する経路を取得します。
KEGGツール
kegg_get_pathway_info- 経路IDによって経路情報を取得します。kegg_list_pathways- 経路をリストします(オプションで生物種でフィルタリング可能)。kegg_find_pathways- クエリキーワードに一致する経路を検索します。kegg_get_gene- 遺伝子IDによって遺伝子情報を取得します。kegg_find_genes- クエリキーワードに一致する遺伝子を検索します。kegg_get_disease- 疾患IDによって疾患情報を取得します。kegg_find_diseases- クエリキーワードに一致する疾患を検索します。kegg_link_pathway_genes- 経路に関連する遺伝子を取得します。
UniProtツール
uniprot_get_protein- アクセッションによってタンパク質情報を取得します。uniprot_search_proteins- UniProtKB内でタンパク質を検索します。uniprot_get_protein_sequence- FASTA形式でタンパク質配列を取得します。uniprot_get_disease_associations- タンパク質に関連する疾患を取得します。uniprot_map_ids- データベース間で識別子をマッピングします。
OMIMツール
omim_get_entry- MIM番号によってエントリ情報を取得します。omim_search_entries- OMIM内でエントリを検索します。omim_get_gene- 遺伝子シンボルによって遺伝子情報を取得します。omim_search_genes- OMIM内で遺伝子を検索します。omim_get_phenotype- MIM番号によって表現型情報を取得します。omim_search_phenotypes- OMIM内で表現型を検索します。
注意: すべてのOMIMツールには api_key パラメータが必要です。APIキーはhttps://omim.org/api から取得してください。
GWAS Catalogツール
gwas_get_association- 関連付けIDによって関連付け情報を取得します。gwas_search_associations- さまざまなフィルターで関連付けを検索します。gwas_get_variant- rsIdによってSNP情報を取得します。gwas_search_variants- rsIdによってSNP/変異を検索します。gwas_get_study- 研究IDによって研究情報を取得します。gwas_search_studies- さまざまなフィルターで研究を検索します。gwas_get_trait- 形質IDによって形質情報を取得します。gwas_search_traits- 形質を検索します。
Pathway Commonsツール
pathwaycommons_search- 経路、タンパク質、または他の生物学的エンティティを検索します。pathwaycommons_get_pathway_by_uri- URIによって経路情報を取得します。pathwaycommons_top_pathways- トップレベルの経路を取得します(オプションで遺伝子またはデータソースでフィルタリング可能)。pathwaycommons_graph- 経路グラフ/ネットワークを取得します(近傍、パスなど)。pathwaycommons_traverse- グラフパス式を使用して経路データをトラバースします。
Node Normalizationツール
nodenorm_get_semantic_types- サポートされているすべてのBioLinkセマンティックタイプを取得します。nodenorm_get_curie_prefixes- サポートされているすべてのCURIEプレフィックスを取得します。nodenorm_get_normalized_nodes- 1つ以上のCURIEを正規化して、同等の識別子を取得します。nodenorm_get_allowed_conflations- 利用可能な合併タイプを取得します。
ChEMBLツール
chembl_get_molecule- ChEMBL IDによって分子(薬剤/化合物)情報を取得します。chembl_search_molecules- 名前または同義語で分子を検索します。chembl_get_target- ChEMBL IDによって標的(タンパク質)情報を取得します。chembl_search_targets- 名前または同義語で標的を検索します。chembl_get_activities- 生物活性データを取得します(標的または分子でフィルタリング可能)。chembl_get_mechanism- 分子の作用機序を取得します。chembl_find_drugs_by_target- 特定のタンパク質を標的とするすべての薬剤を検索します。chembl_find_drugs_by_indication- 疾患/適応症に対するすべての薬剤を検索します。chembl_get_drug_indications- 特定の薬剤のすべての適応症を取得します。
ClinicalTrials.govツール
ctg_search_studies- さまざまなフィルターで臨床試験を検索します。ctg_get_study- NCT IDによって単一の研究を取得します。ctg_search_by_condition- 疾患/症状によって試験を検索します。ctg_search_by_intervention- 介入/治療によって試験を検索します。ctg_get_study_metadata- データモデルのメタデータ(利用可能なフィールド)を取得します。
PubMed/PubTator3ツール
pubmed_search_articles- 遺伝子、疾患、化学物質、キーワード、または変異によってPubMed/PubTator3からバイオメディカル記事を検索します。pubmed_get_article- PMIDまたはDOIによって詳細な記事情報を取得します(全文取得もサポート)。pubmed_search_preprints- Europe PMCを介してbioRxiv/medRxivからプレプリント記事を検索します。
OpenFDAツール
openfda_search_adverse_events- 薬剤、反応、または重症度によってFDAの有害事象報告(FAERS)を検索します。openfda_get_adverse_event- 安全報告IDによって詳細な有害事象報告を取得します。openfda_search_drug_labels- 薬剤名、適応症、またはセクションによってFDAの薬剤製品ラベル(SPL)を検索します。openfda_get_drug_label- セットIDによって完全な薬剤ラベルを取得します(オプションでセクションをフィルタリング可能)。openfda_search_device_events- デバイス、製造業者、または問題によってFDAのデバイス有害事象報告(MAUDE)を検索します。
注意: OpenFDAツールは、より高いレート制限のためのオプションの api_key パラメータをサポートしています。APIキーはhttps://open.fda.gov/apis/ から取得してください。
MyVariant.infoツール
myvariant_search_variants- 遺伝子、HGVS表記、rsID、臨床的意義、頻度、またはCADDスコアによって遺伝的変異を検索します。myvariant_get_variant- 変異ID(HGVS、rsID、またはMyVariant ID)によって包括的な変異詳細を取得します。
BioThings Suiteツール
mygene_get_gene- MyGene.infoからIDまたはシンボルによって遺伝子情報を取得します。mydisease_get_disease- MyDisease.infoからIDまたは名前によって疾患情報を取得します。mychem_get_drug- MyChem.infoからIDまたは名前によって薬剤/化学物質情報を取得します。
NCI Clinical Trialsツール
nci_search_trials- 条件、介入、フェーズ、またはステータスによってNCIの癌臨床試験を検索します。nci_get_trial- 試験IDによってNCIの試験詳細を取得します。
注意: NCIツールはオプションの api_key パラメータをサポートしています。APIキーはhttps://clinicaltrialsapi.cancer.gov/ から取得してください。
開発
サーバーは以下のように構成されています。
medical_mcps/
├── __init__.py
├── http_server.py # HTTP MCPサーバー (Starlette)
├── med_mcp_server.py # 統一MCPサーバーとツールデコレータ
├── settings.py # サーバー設定
├── sentry_config.py # Sentryエラー追跡設定
├── api_clients/ # APIクライアントの実装
│ ├── __init__.py
│ ├── base_client.py
│ ├── reactome_client.py
│ ├── kegg_client.py
│ ├── uniprot_client.py
│ ├── omim_client.py
│ ├── gwas_client.py
│ ├── pathwaycommons_client.py
│ ├── nodenorm_client.py
│ ├── chembl_client.py
│ ├── ctg_client.py
│ ├── pubmed_client.py
│ ├── openfda_client.py
│ ├── myvariant_client.py
│ ├── mygene_client.py
│ ├── mydisease_client.py
│ ├── mychem_client.py
│ └── nci_client.py
└── servers/ # 各APIごとの個別MCPサーバー
├── __init__.py
├── reactome_server.py
├── kegg_server.py
├── uniprot_server.py
├── omim_server.py
├── gwas_server.py
├── pathwaycommons_server.py
├── nodenorm_server.py
├── chembl_server.py
├── ctg_server.py
├── pubmed_server.py
├── openfda_server.py
├── myvariant_server.py
├── biothings_server.py
└── nci_server.py
新しいAPIを追加するには、以下の手順を実行します。
api_clients/ディレクトリに新しいクライアントを作成します(例:newapi_client.py)。servers/ディレクトリに新しいサーバーを作成します(例:newapi_server.py)。med_mcp_serverから@medmcps_toolデコレータを使用して、個別のサーバーと統一サーバーの両方にツールを登録します。http_server.pyでサーバーを登録します(インポート、マウント、およびライフサイクル)。- ツールの命名規則に従います。
{api_name}_{tool_name}
例:
from ..med_mcp_server import unified_mcp, tool as medmcps_tool
@medmcps_tool(name="newapi_tool_name", servers=[newapi_mcp, unified_mcp])
async def tool_function(...):
...
テスト
MCPクライアントを接続してツールを呼び出すことで、サーバーをテストできます。各ツールのレスポンスには、出力にAPIソースが含まれています。
代替品







