schema-mcp-core
Основа для MCP-серверов над российскими деловыми API. Сам по себе ничего не
подключает: сервер приносит каталог методов (endpoints.yaml) и тонкий
server.py, всё остальное берёт отсюда.
Так устроены hh-mcp-ru, diadoc-mcp-ru, sbis-mcp-ru, chestny-znak-mcp-ru и vk-mcp-ru.
Что внутри
| модуль | зачем |
|---|---|
registry |
каталог методов из YAML: поиск словами, описание, пагинация |
safety |
класс доступа read / write / destructive |
client |
асинхронный HTTP: авторизация, повтор на 429, пагинация, белый список доменов |
credentials |
ключи на несколько кабинетов, файл вне репозитория с правами 600 |
tools |
готовый набор инструментов MCP: поиск, описание, вызов, кабинеты |
doctor |
отчёт «взлетит ли эта установка», список сервисов задаёт вызывающий |
paginate |
выкачать все страницы одним вызовом, только для чтения |
entities, workflows |
карта сущностей и готовые сценарии, если сервер их приносит |
Зачем отдельный пакет
Ядро это 2 200 строк, а сервер поверх него 66. Пять серверов, живущих отдельными репозиториями, иначе несли бы пять копий одного кода, и правка безопасности в одном месте оставляла бы четыре непочиненных.
Минимальный сервер
from mcp.server.fastmcp import FastMCP
from schema_mcp_core.client import MarketplaceClient, ServiceConfig
from schema_mcp_core.registry import Catalog
from schema_mcp_core.tools import register_generic_tools
catalog = Catalog.from_yaml(Path(__file__).parent / "endpoints.yaml")
config = ServiceConfig(service="hh", base_url="https://api.hh.ru", ...)
mcp = FastMCP("hh-mcp-ru")
register_generic_tools(mcp, prefix="hh", catalog=catalog, client_factory=...)
Живой пример с авторизацией и кабинетами лежит в любом из пяти серверов выше.
Что ядро НЕ делает
Не ходит в сеть само, не хранит ключи в репозитории, не пишет в сервис без
подтверждения: методы класса write и destructive требуют явного согласия
на стороне вызова.
Установка
pip install schema-mcp-core
MIT. Автор Илья Утов.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file schema_mcp_core-0.2.0.tar.gz.
File metadata
- Download URL: schema_mcp_core-0.2.0.tar.gz
- Upload date:
- Size: 47.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c792350c6bb3724a96ace255eafe93975ccb206b94ef117f3c277acb9cb5efc
|
|
| MD5 |
7a0e0e3aba1cfba8aa357dc44dcdf166
|
|
| BLAKE2b-256 |
4341538e17933fbb638487c140540a8e43d79a1ea0d0dddf9b53aa92a244a6f8
|
Provenance
The following attestation bundles were made for schema_mcp_core-0.2.0.tar.gz:
Publisher:
publish-pypi.yml on ilyautov/schema-mcp-core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
schema_mcp_core-0.2.0.tar.gz -
Subject digest:
9c792350c6bb3724a96ace255eafe93975ccb206b94ef117f3c277acb9cb5efc - Sigstore transparency entry: 2792467954
- Sigstore integration time:
-
Permalink:
ilyautov/schema-mcp-core@2856a9059f008c6a7876d88d2f30986e8d59ede4 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/ilyautov
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@2856a9059f008c6a7876d88d2f30986e8d59ede4 -
Trigger Event:
push
-
Statement type:
File details
Details for the file schema_mcp_core-0.2.0-py3-none-any.whl.
File metadata
- Download URL: schema_mcp_core-0.2.0-py3-none-any.whl
- Upload date:
- Size: 42.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d3d9d4b285d33a48c5347be61a750afe1d05a052de3c9055fd859a6c90a7b8e2
|
|
| MD5 |
b614b2b3cdd3e8047b1ae76bc70434dc
|
|
| BLAKE2b-256 |
88b35d43cb215104039e6430ea044737fc75b0c4d1e23aa8c9cb3a79fcb2bf8a
|
Provenance
The following attestation bundles were made for schema_mcp_core-0.2.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on ilyautov/schema-mcp-core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
schema_mcp_core-0.2.0-py3-none-any.whl -
Subject digest:
d3d9d4b285d33a48c5347be61a750afe1d05a052de3c9055fd859a6c90a7b8e2 - Sigstore transparency entry: 2792468005
- Sigstore integration time:
-
Permalink:
ilyautov/schema-mcp-core@2856a9059f008c6a7876d88d2f30986e8d59ede4 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/ilyautov
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@2856a9059f008c6a7876d88d2f30986e8d59ede4 -
Trigger Event:
push
-
Statement type: