Skip to main content
Glama
pyrfor

sbis-mcp

by pyrfor

sbis-mcp

License: MIT

Read-only MCP server for Saby (СБИС) EDI — list/read documents and counterparties via the official JSON-RPC API, so agents can see legally significant paperwork without copy-paste.

⚠️ Unofficial. Not affiliated with Tensor LLC / Saby. Needs your own Saby account with API access.
v0.1 is read-only. Digital signatures (КЭП) and write paths are out of scope until v0.2.

⚠️ Неофициальный. Не аффилирован с ООО «Тензор» / Saby. Нужен свой аккаунт.
v0.1 — только чтение. КЭП и запись — не в этом релизе.

Proof — seven tools (v0.1)

Tool

SBIS method

sbis_config

sbis_current_user

СБИС.ИнформацияОТекущемПользователе

sbis_list_documents

СБИС.СписокДокументов

sbis_list_documents_by_event

СБИС.СписокДокументовПоСобытиям

sbis_read_document

СБИС.ПрочитатьДокумент

sbis_list_counterparties

СБИС.СписокКонтрагентов

sbis_get_attachment

GET by temporary link

Writes (ЗаписатьДокумент, ПодготовитьДействие, …) stay off until v0.2 (writable, default false).

Related MCP server: procurement-knowledge-mcp

First use

Env (recommended):

export SBIS_LOGIN="<LOGIN>"
export SBIS_PASSWORD="<PASSWORD>"
# optional:
export SBIS_BASE_URL="https://online.sbis.ru"   # test: https://fix-online.sbis.ru
export SBIS_ACCOUNT="<ACCOUNT>"

Or ~/.sbis-mcp/config.json:

{
  "login": "<LOGIN>",
  "password": "<PASSWORD>",
  "baseUrl": "https://online.sbis.ru",
  "writable": false
}

Build & run (Node.js ≥ 18):

npm install
npm run build
npm start

Claude Desktop example: examples/claude_desktop_config.json.

Limits (from Saby docs)

  • Auth: ≤300 calls/min per IP

  • Session sid: ~21 days (X-SBISSessionID)

  • Attachment: ≤73 MB, up to 10 per document

  • Temporary file links: ~1 month

Source: saby.ru tech requirements

API docs: JSON-RPC format · auth · documents · counterparties

Live smoke & tests

Live smoke is manual (real account + tariff «Обмен с контрагентами»):

npm run build
SBIS_LOGIN="…" SBIS_PASSWORD="…" node scripts/live-smoke.mjs

Unit tests mock RPC — no live account:

npm test

License

MIT — see LICENSE.

Available Tools

7 tools
sbis_configA

Check Saby/SBIS configuration status and setup instructions (read-only v0.1)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without any annotations, the description must fully disclose behavioral traits. It states 'read-only v0.1', which indicates safety, but fails to mention important details like authentication requirements, error behavior, or what actions are performed. The minimal disclosure leaves significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that conveys the tool's purpose and read-only nature with zero redundancy. Every word serves a purpose, making it highly concise and front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no input parameters and no output schema, the description is somewhat minimal. It does not explain what 'configuration status and setup instructions' entails or the format of the output, leaving room for ambiguity. Could be more complete by specifying the kind of configuration details returned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, so the baseline is 4. The description adds no parameter information because there are none, which is adequate. No additional semantic context is needed beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool checks 'Saby/SBIS configuration status and setup instructions', identifying a specific action on a distinct resource. The sibling tools (e.g., sbis_list_documents, sbis_current_user) cover different functionalities, so this tool's purpose is well-differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when configuration status is needed, but lacks explicit guidance on when not to use it or how it compares to alternatives. No prerequisites or exclusions are mentioned, leaving the agent to infer context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sbis_current_userC

Current authenticated user (СБИС.ИнформацияОТекущемПользователе). КЭП auth not supported in v0.1.

ParametersJSON Schema
NameRequiredDescriptionDefault
extraFieldsNoДопПоля, напр. «СписокВнешнихПровайдеров»

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses one behavioral trait: КЭП authentication is not supported in v0.1. However, without annotations, it lacks details on read-only nature, side effects, or authorization needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, using a single sentence plus a parenthetical. No wasted words, though it could benefit from structured detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Missing output schema and no description of return values. The description is too sparse for a tool with no annotations and one optional parameter, leaving gaps about what the user actually receives.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of parameters with a description for extraFields. The tool description adds no extra meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves the current authenticated user, with a Russian name for reference. It distinguishes itself from sibling tools focused on documents, counterparties, and configuration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The description only mentions a limitation (КЭП auth not supported in v0.1) but does not provide usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sbis_get_attachmentA

Download attachment by temporary URL from read_document (GET, no sid). Pass includeContent:true for base64.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesДокумент.Вложение[].Файл.Ссылка
includeContentNoInclude contentBase64 (large files up to 73MB)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It mentions HTTP method and the includeContent parameter effect, but lacks details on error handling, response format, URL expiration, or size limits beyond what is in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that conveys all essential information without any superfluous words. It is front-loaded and efficient, every part earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is incomplete: it does not explain what the tool returns (e.g., binary file, base64 string, or something else), the response structure, or that the URL is temporary. Given no output schema, this omission is significant for an attachment download tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters. The description clarifies that the URL comes from read_document and that includeContent=true yields base64, adding marginal value over the schema. No significant new semantics are provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (download), resource (attachment), and source (temporary URL from read_document). It also specifies HTTP method (GET) and authentication (no sid), making the purpose unambiguous and distinct from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool should be used after read_document to obtain the temporary URL, but it does not explicitly state when not to use it or provide alternatives. Usage context is inferred but not fully articulated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sbis_list_counterpartiesC

Search counterparties by INN/KPP/name (СБИС.СписокКонтрагентов)

ParametersJSON Schema
NameRequiredDescriptionDefault
innNo
kppNo
nameNo
pageNo
queryNoINN or name
pageSizeNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full responsibility for behavioral disclosure. It only states 'search' (implying read-only) but does not disclose pagination behavior, authentication needs, rate limits, or any side effects. Critical gaps remain.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with one sentence plus a parenthetical. No redundancy. However, it could be structured with bullet points or clearer separation of parameters. The brevity is good but at the cost of completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given six parameters, no output schema, and no annotations, the description is incomplete. It omits pagination details, parameter optionality, and return format. The tool requires more context for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning for inn, kpp, and name parameters by stating 'Search counterparties by INN/KPP/name'. However, it does not explain query, page, or pageSize. Schema description coverage is low (17%), so the description partially compensates but is insufficient for all six parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Search' and resource 'counterparties' with criteria 'INN/KPP/name'. It conveys the core purpose, though it does not explicitly distinguish from sibling tools (which are all document-related, so differentiation is implicit).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, such as sbis_list_documents or others. The description does not mention when to use or not use this tool, nor any prerequisites or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sbis_list_documentsC

List documents by type and period (СБИС.СписокДокументов). docType required: Реализация, Корреспонденция, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
maskNoМаска по номеру/примечанию
pageNoСтраница (0-based)
limitNoAlias for pageSize
stateNoСостояние документа
dateToNoYYYY-MM-DD → ДатаПо
docTypeYesТип документа (Тип)
dateFromNoYYYY-MM-DD → ДатаС
pageSizeNoРазмерСтраницы 1–200
directionNoНаправление
counterpartyInnNo
counterpartyKppNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It does not disclose behavior beyond listing documents; missing pagination behavior, rate limits, authentication needs, or any side effects. Minimal disclosure for a read operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, concise and front-loaded with purpose. The second sentence provides essential info about the required parameter. Some waste could be reduced by avoiding the Russian text in parentheses, but overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 11 parameters and no output schema, the description is too thin. It does not describe return format, pagination behavior, or how 'page' and 'limit' work. For a list tool, this is a significant gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is high (82%), so baseline is 3. The description adds value by specifying that docType is required and giving example values ('Реализация, Корреспонденция, etc.'). It also implies period filtering via dateFrom/dateTo but does not elaborate on other parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool lists documents by type and period, with docType required and examples. However, it does not differentiate from the sibling tool 'sbis_list_documents_by_event', which lists documents by event. A higher score would require explicit distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'sbis_list_documents_by_event'. There is no mention of prerequisites, contexts, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sbis_list_documents_by_eventC

Registry lists: Входящие / Исходящие / Ответы от контрагентов (СБИС.СписокДокументовПоСобытиям)

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
stateNo
dateToNo
dateFromNo
pageSizeNo
registryTypeYes
counterpartyInnNo

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist. The description gives no information about side effects (e.g., read-only nature), authentication needs, rate limits, or pagination behavior. Minimal transparency; the tool is likely read-only but not stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (a single line), which is concise but at the expense of completeness. It front-loads the three registry types, but lacks structure or elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 parameters and no output schema, the description is severely incomplete. It does not explain pagination, filtering, state, or counterparty INN. The agent has insufficient information to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It only adds context for registryType by listing its enum values. Other parameters (page, limit, dates, etc.) are left entirely unexplained, leaving the agent with no semantic guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description mentions 'Registry lists' with three categories (incoming/outgoing/responses), which implies listing documents by event type. However, it does not explicitly state 'list documents by event' in English, and the verb is implicit. The purpose is somewhat clear but vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus siblings like sbis_list_documents. No context on prerequisites or exclusions. The description provides no usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sbis_read_documentC

Full document card with attachments metadata (СБИС.ПрочитатьДокумент)

ParametersJSON Schema
NameRequiredDescriptionDefault
editionIdNoИдентификатор редакции (optional)
documentIdYesИдентификатор документа
extraFieldsNoДопПоля

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, and the description does not disclose behavioral traits such as read-only nature, authentication requirements, or error behaviors. The Russian parenthetical adds no clear behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (one sentence) but lacks necessary information, making it under-specified rather than efficiently concise. It is not verbose, but it sacrifices completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 3 parameters, no output schema, and no annotations, the description is highly incomplete. It does not explain return values, side effects, or how to handle optional parameters, leaving significant gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage, so the description does not need to add parameter details. It adds no meaning beyond what the schema already provides, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads a full document card with attachments metadata, using a specific verb+resource pattern. However, it does not differentiate from sibling tools like 'sbis_get_attachment' or 'sbis_list_documents', which might also involve reading document-related data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or typical use cases beyond reading a document.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 7 tool updatesv0.1.0
    • First observedsbis_config
    • First observedsbis_current_user
    • First observedsbis_get_attachment
    • First observedsbis_list_counterparties
    • First observedsbis_list_documents
    • First observedsbis_list_documents_by_event
    • First observedsbis_read_document

TDQS

B3.1/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: user info, document listing by type, document listing by events, reading a document, counterparty search, attachment download, and config check. The two document listing tools are differentiated by their filter criteria.

Naming Consistency4/5

All tools follow the 'sbis_<action>_<noun>' pattern except 'sbis_current_user' (noun phrase) and 'sbis_config' (noun), which are minor deviations. The majority use 'list', 'read', or 'get' as verbs, maintaining overall consistency.

Tool Count5/5

Seven tools is an appropriate scope for a document management server, covering core retrieval operations without being overly numerous or sparse.

Completeness2/5

The server lacks any CRUD operations beyond reading and listing; there are no tools for creating, updating, or deleting documents or counterparties, which are essential for typical document workflows.

Maintenance

ActivitySlowing
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    B
    quality
    B
    maintenance
    MCP server for 1C:Enterprise ERP with 35 tools: metadata inspection, document CRUD, register queries, and BSP integration. First MCP server for Russian ERP systems (300,000+ organizations). JSON-RPC 2.0 compliant BSL implementation.
    51
    32
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for RAG-based search over 1C Enterprise configuration documentation, enabling natural language queries to find objects like справочники, документы, and отчеты.
    MIT

Latest Blog Posts

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/pyrfor/sbis-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server