选项卡ai mcp(tab_mcp)
MCP连接器到1C:企业-体系结构组件 TAB:人工智能库.
建筑
Claude / MCP-клиент
│
▼
tab_mcp ──── OData ────► База 1С
│
└─── HTTP ──────────► tab_ss (хранит credentials 1С, семантический поиск)
│
└──────────────► tab_ca (мультиагент LLM)
│
└──► LLM провайдеры
(openai, deepseek, gigachat…)- tab_mcp 这台服务器。通过ODATA连接到1C的MCP连接器
- tab_ss -存储到1C(URL+credentials)的连接,语义搜索服务
- tab_ca -TAB_SS中的多代理LLM
- 比亚 -TAB:AI库,1C扩展:企业
它是如何工作的
- 管理员在tab_ss中保留数据库1c的连接一次(
POST /v1/onec/connections) - LLM调用
read_1c或write_1c有参数的organization和user_id - TAB_MCP自动从TAB_SS检索credentials并执行ODATA查询
- 登录/密码1C 不在每个请求中发送 存储在tab_ss中,缓存5分钟
安装
# Рекомендуется: uvx (не требует установки Python окружения)
uvx tab-ai-mcp
# Или через pip
pip install tab-ai-mcp
tab-ai-mcp为了uvx需要uv:curl -LsSf https://astral.sh/uv/install.sh | sh
Деплой(铁路/码头)
docker run -e MCP_TRANSPORT=streamable-http \
-e TAB_SS_URL=https://your-tab-ss.up.railway.app \
-e TAB_SS_API_KEY=your-key \
-p 8001:8001 \
ghcr.io/dziden/tab-ai-mcp或者通过铁路-连接存储库 Dockerfile 自动。
环境变量
变量描述为默认值。 |---|---|---| | TAB_SS_URL |URLсервисаtab_ss |облако铁路| | TAB_SS_API_KEY TAB_SS密钥(X-Admin-Key内置钥匙 | MCP_TRANSPORT | stdio (克劳德桌面) streamable-http (服务器) stdio | | MCP_HOST HTTP传输主机 0.0.0.0 | | PORT / MCP_PORT HTTP传输端口(铁路指定) PORT 自动)。 8001 | | LOG_API_KEY ÐÐÐÐÐÐÐÐÐÐ /logs Endpoint(默认值= TAB_SS_API_KEY) | — | | ONEC_ORGANIZATION 将ODATA元数据索引到tabu ss的组织 | ONEC_BASE_URL Fallback URL 1c用于本地开发,无需tab_ss。 | ONEC_USERNAME ←Fallback登录1C用于本地开发→ | ONEC_PASSWORD ←Fallback密码1C用于本地开发→
向后兼容: 还通过TAB_AI_BASE_URL和TAB_AI_API_KEY.
设置1C连接
在使用之前,您必须在tabu ss中保存数据库1c的连接:
POST /v1/onec/connections
X-Admin-Key: your-key
Content-Type: application/json
{
"organization": "my-org",
"user_id": "",
"odata_base_url": "http://1c-server/base",
"username": "login",
"password": "password"
}user_id=""-全组织概况- 不同的
user_id-一个组织中不同用户的不同1C数据库
Claude Desktop(本地模式)
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 窗户: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"1c": {
"command": "uvx",
"args": ["tab-ai-mcp"],
"env": {
"TAB_SS_URL": "https://your-tab-ss.up.railway.app",
"TAB_SS_API_KEY": "your-key",
"ONEC_ORGANIZATION": "my-org"
}
}
}
}MCP Tools(MCP Tools)
read_1c 从1C读取数据
read_1c(organization, query, user_id?, filter?, select?, expand?, top?, skip?)参数描述 |---|---| | organization Ð组织代码(tabu ss键)。必须。 | | query 要阅读什么:准确的ODATA-名称,虚拟表或俄语描述› | user_id ≫用于隔离连接的用户ID(默认为“)≫ | filter | OData $filter 表达 | select 田野上的小数点。 | expand | OData $expand 对于嵌入的对象。 | top (默认为100条记录) | skip 这是一个转变为毁灭。
选项 query:
"Catalog_Номенклатура"-确切的奥达塔-名字"AccountingRegister_Хозрасчетный/Balance(Period=datetime'2025-12-31T00:00:00')"-虚拟表"остатки товаров на складах"-描述,通过语义搜索解决
write_1c 数据写入1C(Upsert)
write_1c(organization, query, data, user_id?, model?)- 如果
data有Ref_KeyPatch(更新) - 如果没有
Ref_KeyPost(创建)
count_document_marks -计算印章和签名
count_document_marks(document_base64)定义扫描或Edo文档上的印章和签名数,属性每个对等方。
查询示例
2025年底银行余额
# Шаг 1: получить Ref_Key для каждого счёта (ChartOfAccounts не поддерживает 'or')
read_1c("my-org", "ChartOfAccounts_Хозрасчетный", filter="Code eq '51'")
read_1c("my-org", "ChartOfAccounts_Хозрасчетный", filter="Code eq '52'")
read_1c("my-org", "ChartOfAccounts_Хозрасчетный", filter="Code eq '55'")
# Шаг 2: запросить остатки через виртуальную таблицу Balance
read_1c("my-org",
"AccountingRegister_Хозрасчетный/Balance(Period=datetime'2025-12-31T00:00:00')",
filter="Account_Key eq guid''")
# Поле СуммаBalance = рублёвый остаток, ВалютнаяСуммаBalance = валютный寻找合作伙伴
read_1c("my-org", "Catalog_Контрагенты", filter="contains(Наименование,'Ромашка')")创建文档
write_1c("my-org", "Document_СчетПокупателю", {
"Дата": "2025-12-31T00:00:00",
"Контрагент_Key": "guid'...'",
...
})监测
当 MCP_TRANSPORT=streamable-http Endpoint可用 /logs:
GET /logs?api_key=your-key&last=50返回最后n个带有运行时、参数和错误的查询。
1C要求
发布的ODATA服务:配置器→管理→Web服务器发布→发布标准ODATA接口
许可证
麻省理工学院