UVG Local MCP Server
UVG Local MCP Server
Автор: Anggelie Velásquez — Карне 221181 Университет долины Гватемалы — Курс CC3067
1. Описание
Локальный MCP-сервер (Model Context Protocol), реализованный с нуля на стандартном Python 3, без использования FastMCP или какого-либо официального MCP SDK. Сервер взаимодействует с клиентом через stdio, используя JSON-RPC 2.0, реализованный вручную.
Related MCP server: My Tools MCP Server
2. Цель
Продемонстрировать понимание жизненного цикла MCP-сервера (initialize → notifications/initialized → tools/list → tools/call), построив протокол вручную, не полагаясь на библиотеки, скрывающие эту логику.
3. Архитектура
Cliente MCP <-- stdio (stdin/stdout) --> server.py
│
┌─────────┴─────────┐
│ │
jsonrpc.py tools.py
(formato JSON-RPC 2.0) (herramientas)server.py: точка входа, цикл чтения из stdin и маршрутизация методов.jsonrpc.py: построение ответов/ошибок JSON-RPC 2.0 и базовая валидация.tools.py: централизованная регистрация инструментов (метаданные + схема + исполняемая функция).
4. Используемый протокол
Транспорт: stdio (стандартный ввод / стандартный вывод).
Форматирование: одно сообщение JSON-RPC 2.0 на строку (JSON Lines / NDJSON). Форматирование типа
Content-Lengthне используется.Формат сообщений: JSON-RPC 2.0, реализованный вручную (без библиотек JSON-RPC или MCP).
Сообщаемая версия протокола MCP:
2024-11-05(полеprotocolVersionв ответе наinitialize).stdoutзарезервирован исключительно для ответов JSON-RPC. Все журналы отправляются вstderr.
5. Реализованные методы MCP
Метод | Тип | Описание |
| Запрос | Возвращает |
| Уведомление | Подтверждение от клиента; ответ не генерируется. |
| Запрос | Возвращает список доступных инструментов с их |
| Запрос | Выполняет инструмент с полученными аргументами. |
Любой другой метод возвращает ошибку JSON-RPC -32601 Method not found.
6. Доступные инструменты
analizar_texto
Вход: { "texto": "Hola mundo" }
Возвращает: количество символов, количество слов, количество строк, текст в верхнем и нижнем регистре.
calcular_estadisticas
Вход: { "numeros": [10, 20, 30, 40] }
Возвращает: количество, сумму, среднее, минимум и максимум.
Проверяет, что numeros — это список, не пустой и содержащий только числовые значения.
informacion_sistema
Без аргументов. Возвращает: операционную систему, версию Python, платформу и текущую рабочую директорию. Не раскрывает пароли, токены, переменные окружения или содержимое файлов.
7. Требования
Python 3.8 или выше.
Внешние зависимости не требуются (см. requirements.txt).
8. Установка
git clone https://github.com/Anggelie/mcp-local-server-uvg.git
cd mcp-local-server-uvg9. Как запустить сервер вручную
Из PowerShell сервер ожидает сообщения через stdin:
python src/server.pyВы можете ввести строку JSON и нажать Enter, например:
{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {}}Сервер ответит строкой JSON в stdout. Для завершения нажмите Ctrl+Z, затем Enter (конец stdin в Windows).
Также можно отправить весь примерный файл за один раз:
Get-Content examples/requests.jsonl | python src/server.py10. Как протестировать
Автоматические тесты (unittest)
python -m unittest discover tests -vДемонстрационный клиент (подпроцесс)
python examples/test_client.pyЭтот скрипт запускает src/server.py как подпроцесс и автоматически выполняет цикл initialize -> initialized -> tools/list -> tools/call для всех 3 инструментов, а также случай с несуществующим методом.
11. Как настроить в MCP-клиенте
Включена примерная конфигурация в client-config/claude_desktop_config.example.json:
{
"mcpServers": {
"uvg-local-server": {
"command": "python",
"args": [
"C:\\RUTA\\AL\\PROYECTO\\src\\server.py"
]
}
}
}Важно: замените C:\RUTA\AL\PROYECTO на реальный путь, куда вы клонировали этот репозиторий на своей машине.
12. Примеры
См. examples/requests.jsonl, который содержит по одному сообщению JSON-RPC на строку, покрывающему initialize, notifications/initialized, tools/list и tools/call для всех трёх инструментов, а также случаи ошибок.
13. Структура проекта
mcp-local-server-uvg/
│
├── src/
│ ├── server.py # Punto de entrada del servidor
│ ├── jsonrpc.py # Utilidades JSON-RPC 2.0
│ └── tools.py # Registro de herramientas
│
├── tests/
│ ├── test_jsonrpc.py
│ └── test_tools.py
│
├── examples/
│ ├── requests.jsonl
│ └── test_client.py
│
├── client-config/
│ └── claude_desktop_config.example.json
│
├── .gitignore
├── requirements.txt
├── README.md
└── README_ES.md14. Обработка ошибок
Реализованы стандартные коды JSON-RPC 2.0:
Код | Значение | Когда возникает |
| Parse error | Полученная строка не является допустимым JSON. |
| Invalid Request | Отсутствует |
| Method not found | Запрошенный метод не реализован. |
| Invalid params | Отсутствующие или неверного типа аргументы в |
| Internal error | Непредвиденная ошибка во время выполнения (не должна ронять сервер). |
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA minimal Model Context Protocol server that provides basic utility tools including mathematical operations, text processing, hashing, and JSON validation. Implements JSON-RPC stdio transport for local testing and development.
- FlicenseNot gradedqualityDmaintenanceProvides file reading and mathematical calculation tools through the Model Context Protocol. Enables reading file contents and evaluating mathematical expressions via stdio transport.
- AlicenseBqualityDmaintenanceEnables AI tools to query context from a local JSON data source via stdio, demonstrating the Model Context Protocol.28MIT
- FlicenseNot gradedqualityAmaintenanceEnables EHR Copilot operations such as order cloning, queue building, and execution trace analysis over stdio.
Related MCP Connectors
A Model Context Protocol server for Wix AI tools
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Connect AI agents to Replynodes over the Model Context Protocol.
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/Anggelie/mcp-local-server-uvg'
If you have feedback or need assistance with the MCP directory API, please join our Discord server