Reliable microservice with unified JSON-RPC endpoint
Project description
MCP Proxy Adapter
MCP Proxy Adapter - это фреймворк для создания микросервисов на основе JSON-RPC. Он предоставляет базовую инфраструктуру для создания команд, обработки запросов и возвращения ответов через JSON-RPC API.
MCP Proxy Adapter - это фреймворк для создания микросервисов на основе JSON-RPC. Он предоставляет базовую инфраструктуру для создания команд, обработки запросов и возвращения ответов через JSON-RPC API.
Установка
pip install mcp-proxy-adapter
Использование
- Создайте свой проект и установите зависимость:
pip install mcp-proxy-adapter
- Создайте свои команды:
from mcp_proxy_adapter.commands.base import Command
from mcp_proxy_adapter.commands.result import SuccessResult
class YourCommand(Command):
name = "your_command"
async def execute(self, param1: str, param2: int = 0) -> SuccessResult:
# Ваша логика
result_data = {"param1": param1, "param2": param2}
return SuccessResult(data=result_data)
- Запустите сервер:
import uvicorn
from mcp_proxy_adapter.api.app import create_app
# Регистрация ваших команд происходит автоматически
app = create_app()
uvicorn.run(app, host="0.0.0.0", port=8000)
Структура проекта
Проект представляет собой фреймворк с базовой инфраструктурой:
- mcp_proxy_adapter/ - основной модуль фреймворка
- api/ - модуль API
- commands/ - базовые классы команд
- core/ - ядро фреймворка
- schemas/ - JSON-схемы
- examples/ - примеры использования фреймворка
- basic_example/ - базовый пример
- minimal_example/ - минимальный пример
- complete_example/ - полный пример с Docker
Базовые команды
Фреймворк включает следующие базовые команды:
help- получение справки по доступным командамhealth- проверка состояния сервиса
API
Фреймворк предоставляет следующие эндпоинты:
POST /api/jsonrpc- основной JSON-RPC эндпоинт для выполнения командPOST /api/command/{command_name}- REST эндпоинт для выполнения конкретной командыGET /api/commands- получение списка доступных командGET /api/commands/{command_name}- получение информации о конкретной командеGET /health- проверка состояния сервиса
Запуск примеров
# Базовый пример
cd examples/basic_example
python main.py
# Минимальный пример
cd examples/minimal_example
python main.py
# Полный пример с Docker
cd examples/complete_example
docker-compose up -d
Создание новой команды
Пример создания новой команды:
from typing import Dict, Any, ClassVar, Type
from mcp_proxy_adapter.commands.base import Command
from mcp_proxy_adapter.commands.result import SuccessResult
class CustomResult(SuccessResult):
"""
Пользовательский класс результата.
"""
def __init__(self, value: str):
super().__init__(data={"value": value})
@classmethod
def get_schema(cls) -> Dict[str, Any]:
return {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"value": {"type": "string"}
},
"required": ["value"]
}
},
"required": ["data"]
}
class CustomCommand(Command):
"""
Пользовательская команда.
"""
name: ClassVar[str] = "custom"
result_class: ClassVar[Type[SuccessResult]] = CustomResult
async def execute(self, input_text: str) -> CustomResult:
return CustomResult(value=f"Processed: {input_text}")
@classmethod
def get_schema(cls) -> Dict[str, Any]:
return {
"type": "object",
"properties": {
"input_text": {"type": "string"}
},
"required": ["input_text"],
"additionalProperties": False
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_proxy_adapter-3.1.2.tar.gz.
File metadata
- Download URL: mcp_proxy_adapter-3.1.2.tar.gz
- Upload date:
- Size: 256.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
792479f1412aaad5c6c9b93c295498b9d4869e7608b9c914858243b8dd39bea0
|
|
| MD5 |
407b48c9fb59ce50a874b5b2dc2af80f
|
|
| BLAKE2b-256 |
bb64ad0d689e0692d90146958cdc7cc9a6f61046b099a30b99f0e16c1612312e
|
File details
Details for the file mcp_proxy_adapter-3.1.2-py3-none-any.whl.
File metadata
- Download URL: mcp_proxy_adapter-3.1.2-py3-none-any.whl
- Upload date:
- Size: 144.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0ed4f98aa2ee4ee254db3c85dc84c3aba663ea349b522e0f4a0b31c522b2311
|
|
| MD5 |
7e043e27ec1ec4c46fc77de57eae461f
|
|
| BLAKE2b-256 |
52d8fafe230704ae7e7df5dc46fe67cf1ea8065dff39d323db66aaa499cf896f
|