Skip to main content
Glama
TheCodeWulf

custodyops-mcp-python

by TheCodeWulf

custodyops-mcp-python

Минимальный Python MCP сервер на Streamable HTTP с использованием FastAPI + fastmcp, готовый к развёртыванию на Render с HTTPS. Он предоставляет инструмент ping и два демо-инструмента (get_positions, list_upcoming_corporate_actions), которые можно заменить на адаптеры только для чтения к вашим данным по кастоди.

Почему Streamable HTTP? Это рекомендуемый транспорт для удалённых/хостируемых MCP серверов, упрощающий двунаправленную потоковую передачу до одной конечной точки POST /mcp и делающий облачное развёртывание простым. См. MCP HTTP quickstart и SDK docs для канонических шаблонов.

Возможности

  • Конечная точка Streamable HTTP по адресу POST /mcp

  • Bearer аутентификация через AUTH_TOKEN

  • /health эндпоинт для проверки доступности

  • Минимальный объём кода, легко расширяется дополнительными MCP инструментами

  • Развёртывание в один клик на Render через render.yaml

Related MCP server: MCP Ping-Pong Server

Быстрый старт (локально)

python -m venv .venv && source .venv/bin/activate   # Windows: .venv\Scriptsctivate
pip install -r requirements.txt
export AUTH_TOKEN=devtoken123
export PORT=3000
uvicorn app:app --host 0.0.0.0 --port $PORT

Тест с помощью cURL:

# tools/list
curl -s -X POST http://localhost:3000/mcp   -H "Content-Type: application/json"   -H "Authorization: Bearer devtoken123"   -d '{"jsonrpc":"2.0","id":"1","method":"tools/list","params":{}}' | jq

# tools/call ping
curl -s -X POST http://localhost:3000/mcp   -H "Content-Type: application/json"   -H "Authorization: Bearer devtoken123"   -d '{"jsonrpc":"2.0","id":"2","method":"tools/call","params":{"name":"ping","arguments":{}}}' | jq

Или запустите вспомогательный скрипт:

chmod +x scripts/test_locally.sh
AUTH_TOKEN=devtoken123 PORT=3000 ./scripts/test_locally.sh

Развёртывание на Render (HTTPS)

  1. Форкните или отправьте этот репозиторий в свой GitHub.

  2. В Render: New → Web Service → Connect repo.

  3. Просмотрите настройки из render.yaml (среда Python, бесплатный план). Render автоматически предоставляет HTTPS.

  4. Установите AUTH_TOKEN в Environment Render (генерируется автоматически, если вы используете blueprint).

  5. Разверните → ваш публичный MCP эндпоинт: https://<your-app>.onrender.com/mcp.

Тест удалённо:

APP_URL=https://<your-app>.onrender.com AUTH_TOKEN=<token> ./scripts/test_remote.sh

Использование из Claude Desktop (удалённый MCP)

Добавьте запись ретрансляции в claude_desktop_config.json:

{
  "mcpServers": {
    "custodyops-mcp": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://<your-app>.onrender.com/mcp"],
      "env": { "AUTH_TOKEN": "<same-token>" }
    }
  }
}

Перезапустите приложение, затем попросите Claude вывести список доступных инструментов.

Расширение с реальными данными кастоди

Замените демо-инструменты на адаптеры только для чтения к вашему хранилищу данных или API. Делайте ответы небольшими и типизированными, по возможности добавляйте происхождение полей.

Пример скелета:

@mcp_tool
def get_positions(account_id: str) -> str:
    rows = query_positions(account_id)  # your adapter
    return json.dumps(rows)

Заметки по безопасности

  • Храните AUTH_TOKEN в секрете; регулярно меняйте. Для корпоративного использования переходите на OAuth/JWT и добавляйте авторизацию на уровне аккаунта.

  • При HTTP транспорте обычное логирование допустимо, но удаляйте конфиденциальные данные и добавляйте идентификаторы запросов.

Лицензия

MIT

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A minimal Model Context Protocol server built with FastAPI that provides a basic "Hello World" resource and tool. Serves as a starting point for building and validating MCP client integrations with richer resources and tools.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    An experimental MCP server demonstrating remote calls via FastAPI, supporting ping-pong commands through API endpoints and SSE transport.
    2
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables building and running MCP servers over streamable HTTP, exposing tools to AI assistants like Cursor, with examples of mounting multiple servers in FastAPI.
    -