lk-tko-mcp
lk-tko-mcp
MCP-сервер (Model Context Protocol) на Python, который даёт Claude инструментальный доступ к системе ЛК (личный кабинет, проект lk-tko-v2).
Что это и зачем
MCP — открытый протокол, по которому внешний процесс отдаёт LLM набор «инструментов» (tools): обычных функций с типизированными аргументами. Подключив сервер к Claude Code, можно попросить Claude вызвать конкретную функцию («получить статус контрагента по ИНН», «посчитать пени по периоду для lkUser» и т.п.) вместо того, чтобы объяснять контекст текстом или лезть в БД/код вручную каждый раз.
Цель пет-проекта — получить переиспользуемый инструментальный слой над бизнес-логикой ЛК, которым можно пользоваться из любых будущих сессий Claude Code, а не только внутри основного репозитория.
Related MCP server: MCP4Acumatica
Стек
Python 3.10+, менеджер зависимостей —
uvSDK:
mcp[cli](v2, пакетmcp==2.1.0), классmcp.server.MCPServerТранспорт: stdio (Claude Code запускает процесс и общается с ним по stdin/stdout)
Стек интеграции
Первый tool (get_contragent_status) ходит в CUBA REST API v2
lk-tko-v2 (OAuth2 password grant + generic entity search по
rtneo$Contragent) — не напрямую в БД. Формат запросов подтверждён
рабочими примерами из curls.txt репозитория lk-tko-v2.
Структура
lk-tko-mcp/
├── server.py # MCPServer + @mcp.tool() функции — вся логика инструментов
├── lk_client.py # REST-клиент к lk-tko-v2 (OAuth2 + entity search)
├── run.py # точка входа, которую регистрирует Claude Code
├── .env.example # шаблон переменных окружения для доступа к ЛК (реальный .env не коммитится)
├── pyproject.toml
└── uv.lockЗапуск и проверка локально
uv run mcp dev run.py # открывает MCP Inspector в браузере — можно вручную вызывать toolsПодключение к Claude Code
claude mcp add lk-tko-mcp -- uv run run.py
claude mcp list # проверить, что статус ConnectedПлан разработки
Каркас — готово. Сервер с
pingиget_contragent_status, запускается локально и через Inspector.REST-клиент — готово.
lk_client.py: OAuth2 password grant с кэшированием токена +search_entity()поверх CUBA REST v2.Первая настоящая интеграция — готово и проверено вживую.
get_contragent_statusреально дёргает REST API lk-tko-v2 черезlk_client.search_entity("rtneo$Contragent", ...), проверено через MCP Inspector с реальными данными тестового контура.Подключение к Claude Code — готово.
claude mcp add lk-tko-mcp -- uv run run.py, статус✔ Connected. Гайд по разворачиванию для других разработчиков — см.ONBOARDING.md.Долг/биллинг (Приоритет 1 из RESEARCH.md) — готово, 6 из 7 проверены.
get_contragent_debt,get_debt_by_phone,get_debt_by_email,get_serviced_periods,get_calculation_amount_type,get_contract,get_fine_details— все реализованы через два новых REST-хелпера вlk_client.py(call_v3для кастомных v3-контроллеров,call_serviceдля декларативных v2-сервисов).get_contragent_billsреализован, но заблокирован багом на стороне lk-tko-v2 (см. примечание ниже).get_calculations_tabs,get_debt_breakdown_by_real_estate,find_contragents_with_debt_older_than— не реализованы, у них нет REST-обёртки в lk-tko-v2 вообще (подтверждено grep по всему репозиторию).
Известные проблемы
get_contragent_billsпадает с 500. Баг на стороне lk-tko-v2:BillRepository.getBillsByContragentAndPeriod(строка 71) ссылается на несуществующий алиасb.documentNumberвместоe.documentNumber— ломает JPQL-компиляцию при любом вызове/app/rest/v3/bill. Заведена отдельная задача на исправление в lk-tko-v2, наш код тут ни при чём.
Расширение набора инструментов — по одному инструменту на конкретный повторяющийся сценарий (например, период/пени для lkUser — см. память проекта
project_lk_user_config), не абстрагировать заранее.(Опционально) командный доступ —
claude mcp add lk-tko-mcp --scope project -- uv run run.pyсоздаст.mcp.jsonв репозитории, который можно закоммитить (без секретов).
Проверка (после заполнения .env)
# 1. Юнит-уровень, без Claude
uv run python -c "from lk_client import search_entity; print(search_entity('rtneo$Contragent', [{'property':'inn','operator':'=','value':'<реальный ИНН>'}]))"
# 2. Через MCP Inspector
uv run mcp dev run.py
# 3. End-to-end
claude mcp add lk-tko-mcp -- uv run run.py
claude mcp listПримечания по безопасности
.envне коммитится, реальные секреты (client_id/secret, логин/пароль) хранятся только локально.По умолчанию указывай локальный dev-инстанс lk-tko-v2 (
http://localhost:8080), а не staging/прод — там может быть неанонимизированный ПДн.У сущности
Contragentнет заранее подтверждённого поля "статус" —get_contragent_statusвозвращает найденную сущность целиком, поле для реального статуса нужно определить по факту ответа REST API.
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 gradedqualityCmaintenanceBridges Claude Code to the Rowan Rose CRM, translating MCP tool calls into REST API requests for contacts, cases, documents, and more.
- AlicenseNot gradedqualityAmaintenanceEnables Claude to interact with Acumatica ERP through a remote MCP server with per-user OAuth, role-based access, and 44 tools for querying and managing ERP data.17Apache 2.0
- AlicenseBqualityAmaintenanceMCP server that enables Claude Code to access, monitor, and manage MikroTik RouterOS devices via its REST API, with 92 tools for read-only and optional write operations.92Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables Claude Code to interact with miibo AI agents (AI employees) via MCP tools, supporting chat, employee management, admin operations, and knowledge addition through the miibo chat API.MIT
Related MCP Connectors
A paid remote MCP for AI SDK data query MCP, built to return verdicts, receipts, usage logs, and aud
A paid remote MCP for OpenAI Codex agent coordination MCP, built to return verdicts, receipts, usage
A paid remote MCP for Context7 MCP docs, built to return verdicts, receipts, usage logs, and audit-r
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/K1mvasyok/lk-tko-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server