custodyops-mcp-python
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 /mcpBearer аутентификация через
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)
Форкните или отправьте этот репозиторий в свой GitHub.
В Render: New → Web Service → Connect repo.
Просмотрите настройки из
render.yaml(среда Python, бесплатный план). Render автоматически предоставляет HTTPS.Установите
AUTH_TOKENв Environment Render (генерируется автоматически, если вы используете blueprint).Разверните → ваш публичный 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
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
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.
Related MCP Connectors
MCP server for Modern Treasury — payment orders, transactions, counterparties and ledgers.
Multi-tenant FastMCP server for Charles Schwab brokerage data, monetized via DPYC Tollbooth
MCP server for Codat — companies, connections, invoices, bills and financial statements.
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA 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.-
- AlicenseNot gradedqualityDmaintenanceAn experimental MCP server demonstrating remote calls via FastAPI, supporting ping-pong commands through API endpoints and SSE transport.2MIT
- FlicenseNot gradedqualityDmaintenanceEnables building and running MCP servers over streamable HTTP, exposing tools to AI assistants like Cursor, with examples of mounting multiple servers in FastAPI.-
- FlicenseNot gradedqualityDmaintenanceA Python-based MCP server that exposes tools over streamable HTTP using FastAPI, enabling connection to AI assistants like Cursor. Supports multiple servers mounted in a single FastAPI app.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/TheCodeWulf/custodyops-mcp-python'
If you have feedback or need assistance with the MCP directory API, please join our Discord server