MyAIServ MCP Server
MCP サーバー - モデルコンテキストプロトコル API
MCP サーバーは、LLM モデルとアプリケーション間の相互作用のための標準化されたインターフェイスを提供するモデル コンテキスト プロトコル (MCP) の FastAPI ベースの実装です。
特徴
🚀 FastAPIと非同期操作に基づく高性能API
🔄 リソース、機器、プロンプト、サンプリングによる完全な MCP サポート
📊 PrometheusとGrafanaによるモニタリングとメトリクス
🧩 シンプルなインターフェースで新しいツールを追加できる拡張性
📝 データを柔軟に操作できるGraphQL API
💬 リアルタイムインタラクションのためのWebSocketサポート
🔍 Elasticsearchとの統合によるセマンティック検索
🗃️ Redis によるキャッシュでパフォーマンスを向上
📦 信頼性の高いパッケージ管理のために、Poetry で依存関係を管理します
Related MCP server: microCMS MCP Server
はじめる
インストール
リポジトリのクローン:
git clone https://github.com/yourusername/myaiserv.git cd myaiservPoetry をインストールします (まだインストールされていない場合):
curl -sSL https://install.python-poetry.org | python3 -Poetry 経由で依存関係をインストールします。
poetry install
サーバーの起動
poetry run uvicorn app.main:app --host 0.0.0.0 --port 8000 --reloadまたは just ユーティリティ経由で:
just run起動後、APIは次の場所で利用できます: http://localhost:8000
APIドキュメント
Swagger UI: http://localhost:8000/docs
再ドキュメント: http://localhost:8000/redoc
GraphQL プレイグラウンド: http://localhost:8000/graphql
プロジェクト構造
myaiserv/
├── app/
│ ├── core/ # Базовые компоненты MCP
│ │ ├── base_mcp.py # Абстрактные классы MCP
│ │ └── base_sampling.py # Базовые классы для сэмплирования
│ ├── models/ # Pydantic модели
│ │ ├── mcp.py # Модели данных MCP
│ │ └── graphql.py # GraphQL схема
│ ├── services/ # Бизнес-логика
│ │ └── mcp_service.py # Сервис MCP
│ ├── storage/ # Хранилище данных
│ ├── tools/ # Инструменты MCP
│ │ ├── example_tool.py # Примеры инструментов
│ │ └── text_processor.py # Инструмент обработки текста
│ ├── utils/ # Утилиты
│ └── main.py # Точка входа FastAPI
├── app/tests/ # Тесты
├── docs/ # Документация
│ └── MCP_API.md # Описание API
├── pyproject.toml # Конфигурация Poetry и инструментов
└── .justfile # Задачи для утилиты just利用可能なツール
ファイルシステムツール
ファイルの読み取り、書き込み、削除、一覧表示をサポートするファイル システム ツール。
curl -X POST "http://localhost:8000/tools/file_operations" \
-H "Content-Type: application/json" \
-d '{"operation": "list", "path": "."}'天気ツール
座標によって天気データを取得するためのツール。
curl -X POST "http://localhost:8000/tools/weather" \
-H "Content-Type: application/json" \
-d '{"latitude": 37.7749, "longitude": -122.4194}'テキスト分析ツール
感情の検出や要約を含むテキスト分析ツール。
curl -X POST "http://localhost:8000/tools/text_analysis" \
-H "Content-Type: application/json" \
-d '{"text": "Example text for analysis", "analysis_type": "sentiment"}'テキストプロセッサツール
書式設定、統計計算、エンティティ抽出などのテキスト処理ツール。
curl -X POST "http://localhost:8000/tools/text_processor" \
-H "Content-Type: application/json" \
-d '{"operation": "statistics", "text": "Example text", "stat_options": ["chars", "words"]}'画像処理ツール
サイズ変更、切り取り、フィルターの適用をサポートする画像処理ツール。
curl -X POST "http://localhost:8000/tools/image_processing" \
-H "Content-Type: application/json" \
-d '{"operation": "resize", "image_data": "base64...", "params": {"width": 800, "height": 600}}'WebSocket API
WebSocket API に接続するには:
const socket = new WebSocket("ws://localhost:8000/ws");
socket.onopen = () => {
socket.send(JSON.stringify({
type: "initialize",
id: "my-request-id"
}));
};
socket.onmessage = (event) => {
const data = JSON.parse(event.data);
console.log("Received:", data);
};GraphQL API
GraphQL 経由のクエリの例:
# Получение списка всех инструментов
query {
getTools {
name
description
}
}
# Выполнение инструмента
mutation {
executeTool(input: {
name: "text_processor",
parameters: {
operation: "statistics",
text: "Example text for analysis"
}
}) {
content {
type
text
}
is_error
}
}テストの実行
テストを実行するには、Poetry を使用します。
poetry run pytestまたは just ユーティリティ経由で:
just testドッカー
Docker Compose によるビルドと実行
docker compose up -d個々のサービスを起動するには:
docker compose up -d web redis elasticsearchLLMとの統合
MCP サーバーは、さまざまなベンダーの LLM モデルとの統合のための標準化されたインターフェースを提供します。
import httpx
async def query_mcp_with_llm(prompt: str):
async with httpx.AsyncClient() as client:
# Запрос к MCP для получения контекста и инструментов
tools_response = await client.get("http://localhost:8000/tools")
tools = tools_response.json()["tools"]
# Отправка запроса к LLM с включением MCP контекста
llm_response = await client.post(
"https://api.example-llm.com/v1/chat",
json={
"messages": [
{"role": "system", "content": "You have access to the following tools:"},
{"role": "user", "content": prompt}
],
"tools": tools,
"tool_choice": "auto"
}
)
return llm_response.json()指標と監視
MCP サーバーは/metricsエンドポイントを介して Prometheus 形式のメトリックを提供します。指標には次のものが含まれます:
各ツールへのリクエスト数
クエリ実行時間
エラーと例外
発達
コードをフォーマットしてリンターでチェックするには:
just fmt
just lintライセンス
This server cannot be installed
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/eagurin/myaiserv'
If you have feedback or need assistance with the MCP directory API, please join our Discord server