mcpField
N
Ntealan Apis Mcp Server

Ntealan Apis Mcp Server

ローカル
github.com/Levis0045科学・教育078 週間前に更新

Ntealan Apis Mcp Server について

NTealan Apis Mcp Serverは、NTeALanの辞書、記事、投稿データをMCPクライアントに提供します。検索、統計、取得などのリソース操作に対応し、記載された変更用ツールは未実装です。

主な機能

  1. 01辞書メタデータと統計
  2. 02記事の取得と統計
  3. 03辞書と記事の検索
  4. 04投稿の取得
  5. 05非同期リソース処理

活用シーン

  1. 01プロジェクト用の辞書詳細の取得
  2. 02検索語や辞書での記事検索
  3. 03辞書や記事の統計確認
  4. 04IDによる投稿の検索

MCP 対応

NTeALan APIのデータをMCPリソースとして提供します。デプロイ済みサーバーの`/sse`エンドポイントに接続します。READMEによると、現在利用できるのはリソース操作のみです。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

NTeALan REST APIs MCP サーバー

NTeALan 辞書 MCP サーバーは、NTeALan REST APIs 辞書と貢献のための、モジュール式で拡張可能な Model Context Protocol(MCP)サーバーです。このプロジェクトは、辞書データ、記事、ユーザーによる貢献を管理するための統一されたインターフェースを提供し、簡単に統合・拡張できるように設計されています。

このプロジェクトはhttps://apis.ntealan.net/ntealan/mcpserverにデプロイされています。MCP クライアントに接続するには、/sseパスを追加してください。現在はリソースの操作のみ利用できます。

⚠️ この開発用エンドポイントは、利用できない場合があります。問題を報告していただければ、対応します。

smithery バッジ

PyPI MIT ライセンス ドキュメント


🦜 目次


🦜 機能

  • 辞書管理:辞書とそのメタデータの作成、更新、削除、取得ができます。
  • 記事管理:統計情報やフィルタリングなど、辞書内の記事を管理できます。
  • 貢献の管理:記事や辞書へのユーザーの貢献を追跡・管理できます。
  • 拡張可能な MCP サーバー:新しいリソースやツールを簡単に追加できます。
  • 非同期処理のサポート:fastmcpとaiohttpを基盤として構築されており、高いパフォーマンスを実現します。
  • OpenAPI 風のリソース登録:URI とタグを指定してリソースやツールを登録できます。

🦜 はじめに

前提条件
インストール
pip を使ったインストール

リポジトリをクローンし、依存関係をインストールします。

git clone https://github.com/Levis0045/ntealan-apis-mcp-server.git
cd ntealan-apis-mcp-server
pip install .
(任意)依存関係をより速く管理するためにuvをインストールして使用する

インストールを高速化し、最新の Python パッケージ管理を利用する場合は、ntealan-apis-mcp-serverディレクトリでuvを使用できます。

uv sync
サーバーの起動

MCP サーバーを起動するには:

python -m ntealanmcp -t stdio

または、uvがインストールされている場合は、次のサーバーコマンドを実行できます。

ntealanmcp -t stdio

サーバーは、デフォルトでこのエンドポイントhttp://127.0.0.1:8000/sseにてServer-Sent Events (sse)トランスポートを使用して起動します。必要に応じて、main.pyでトランスポートを変更できます。


🦜 プロジェクト構成

ntealan-api/
├── src/
│   └── ntealan_apis_mcp/
│       ├── main.py
│       ├── models/
│       │   ├── article.py
│       │   ├── contribution.py
│       │   ├── dictionary.py
│       │   └── common.py
│       ├── primitives/
│       |    ├── resources/
│       │    │   ├── article.py
│       │    │   ├── contribution.py
│       │    │   └── dictionary.py
│       |    └── tools/
│       |        ├── article.py
│       |        ├── contribution.py
│       |        └── dictionary.py
│       └── common/
│           ├── utils.py
│           ├── cache.py
│           └── http_session.py
├── examples/
├── tests/
├── pyproject.toml
└── requirements.txt

🦜 使い方

プリミティブリソース

リソースは、辞書、記事、投稿に関する NTeALan API エンドポイントの公開データを提供する非同期関数です。MCP サーバーに登録され、独自の URI から呼び出すことができます。

リソース登録の例:

ntl_mcp_server.add_resource_fn(
    lambda dictionary_id, article_id, params: get_article_by_id(
        dictionary_id, article_id, params, ntl_mcp_server.get_context()
    ),
    name="get_article_by_id",
    uri="ntealan-apis://articles/dictionary/{dictionary_id}/{article_id}?{params}",
    tags=["article-endpoint", "mcp-resource"],
    mime_type="application/json",
    description="Get an article by ID"
)

# or just use the classic integration
@ntl_mcp_server.resource(
    uri="ntealan-apis://articles/dictionary/{dictionary_id}/{article_id}?{params}",
    tags=["article-endpoint", "mcp-resource"],
    mime_type="application/json"
)
async def get_article_by_id(
    dictionary_id: str, article_id: UUID,
    params: str, ctx: Context
) -> McpResourceResponse:
    """
    Retrieve a article by its unique identifier.
    """
    # Placeholder logic
    return {"status": "OK", "data": f"Hello, {article_id}!"}

既存リソースの一覧とステータス:

名前 / URI パターン説明パラメーター開発ステータス
ntealan-apis://dictionaries/dictionary/{dictionary_id}ID で辞書のメタデータを取得dictionary_id安定
ntealan-apis://dictionaries?limit=2すべての辞書のメタデータを取得limit安定
ntealan-apis://dictionaries/statistics/{dictionary_id}特定の辞書の統計情報を取得dictionary_id安定
ntealan-apis://dictionaries/statisticsすべての辞書の統計情報を取得なし安定
ntealan-apis://articles/dictionary/{dictionary_id}/{article_id}?noneID で記事を取得dictionary_id、article_id安定
ntealan-apis://articles?limit=2すべての記事を取得limit安定
ntealan-apis://articles/dictionary/{dictionary_id}?limit=2辞書のすべての記事を取得dictionary_id、limit安定
ntealan-apis://articles/statistics/{dictionary_id}辞書の記事の統計情報を取得dictionary_id安定
ntealan-apis://articles/statisticsすべての記事の統計情報を取得なし不安定
ntealan-apis://contributions/{dictionary_id}/{contribution_id}ID で投稿を取得dictionary_id、contribution_id安定
ntealan-apis://greeting/Elvisあいさつリソースname安定
ntealan-apis://articles/dictionaries/search/{dictionary_id}?q=mba&page=1&limit=1辞書内の記事を検索dictionary_id、q、page、limit安定
ntealan-apis://articles/search?q=mba&page=1記事を検索q、page安定
ntealan-apis://dictionaries/search?q=yemb&page=1&limit=1辞書を検索q、page、limit安定
プリミティブツール

ツールは、辞書、記事、投稿を作成、更新、削除するためのユーティリティ関数です。

ツール登録の例:

ntl_mcp_server.add_tool(
    create_dictionary,
    description="Create a new dictionary",
    tags=["mcp-tool", "dictionary-endpoint"]
)

既存のツールとステータスの一覧(未実装):

ツール名説明必須のペイロードフィールド開発ステータス
create_dictionary新しい辞書を作成しますdata(辞書のフィールド)未着手
update_dictionary既存の辞書を更新しますdictionary_id、data(更新するフィールド)未着手
delete_dictionary辞書を削除しますdictionary_id未着手
create_article新しい記事を作成しますdictionary_id、data(記事のフィールド)未着手
update_article記事を更新しますdictionary_id、article_id、data(更新するフィールド)未着手
delete_article記事を削除しますdictionary_id、article_id未着手
create_contribution新しい投稿を作成しますdictionary_id、article_id、data(投稿のフィールド)未着手
update_contribution投稿を更新しますdictionary_id、article_id、contribution_id、data未着手
delete_contribution投稿を削除しますdictionary_id、article_id、contribution_id未着手
実行例

サンプルを実行してテストするには、examples/ フォルダーを確認してください。

# for all resources
uv run examples/run_client_resources.py -t sse -e prod -s 8
# for all tools
uv run examples/run_client_tools.py -t stdio -e local -s 0

ドキュメントはこちらで確認できます:

# for all resources
uv run examples/run_client_resources.py -h
# for all tools
uv run examples/run_client_tools.py -h
Docker を使用したデプロイ

Docker を使用して MCP サーバーをデプロイし、本番環境では Nginx リバースプロキシの背後で提供できます。

1. Docker イメージをビルドする

Docker イメージを手動でビルドします:

docker build -t ntealan-mcp-server .
2. または、サービスを自動的にビルドして起動する
  • 最新バージョンの Compose と Docker を取得して確認します。応答として Docker Compose version v2.35.1 が表示されます。
docker compose version
  • サービスをビルドして起動します
docker compose up --build -d
  • MCP サーバーは、http://0.0.0.0:8000 または設定したドメインでアクセスできるようになります。

  • MCP クライアントを http://127.0.0.1:8000/sse または設定したドメインに接続します。

Smithery に接続する
  • mcp CLI をインストールします
uv add "mcp[cli]"
  • MCP クライアントを接続します
import mcp
from mcp.client.websocket import websocket_client
import json
import base64

smithery_api_key = "your-api-key"
url = f"wss://server.smithery.ai/@Levis0045/ntealan-apis-mcp-server/ws?api_key={smithery_api_key}"

async def main():
    # Connect to the server using websocket client
    async with websocket_client(url) as streams:
        async with mcp.ClientSession(*streams) as session:
            # Initialize the connection
            await session.initialize()
            # List available tools
            tools_result = await session.list_tools()
            print(f"Available tools: {', '.join([t.name for t in tools_result.tools])}")

            # Example of calling a tool:
            # result = await session.call_tool("tool-name", arguments={"arg1": "value"})

if __name__ == "__main__":
    import asyncio
    asyncio.run(main())

🦜 コントリビューション

詳しくは、こちらのファイルをご覧ください:CONTRIBUTION.md

🦜 お問い合わせ

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。