Skip to main content

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

Использование

  1. Создайте свой проект и установите зависимость:
pip install mcp-proxy-adapter
  1. Создайте свои команды:
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)
  1. Запустите сервер:
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

mcp_proxy_adapter-3.0.2.tar.gz (242.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_proxy_adapter-3.0.2-py3-none-any.whl (137.2 kB view details)

Uploaded Python 3

File details

Details for the file mcp_proxy_adapter-3.0.2.tar.gz.

File metadata

  • Download URL: mcp_proxy_adapter-3.0.2.tar.gz
  • Upload date:
  • Size: 242.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for mcp_proxy_adapter-3.0.2.tar.gz
Algorithm Hash digest
SHA256 c3b46a87f61fb3348beb278de89a2cf0d8183d229b2e3c591ada8038de710d8a
MD5 9e38efac5d6058a35fdea7d2e90e26c1
BLAKE2b-256 99f8c751066aa1ec7c7a69027e53cfcb1afe1e2d1d499409f71da1533f5e1d92

See more details on using hashes here.

File details

Details for the file mcp_proxy_adapter-3.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_proxy_adapter-3.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2cc76429ed10151ea4ccaa2485610f92df92363f074727f2e38df2f1c2d78b10
MD5 0ea1e5f4fc7f41db0744d0e168ed2c2d
BLAKE2b-256 8785a84b3bba815b2ab3055eec16ad41fc909663e0820b2d583560705b875fbc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page