MCP-1C开发标准服务器:企业8
访问MCP服务器 标准和开发方法 1C配置:企业8。
与 光标, 克劳德代码, VS Code, 克劳德桌面版.
______________________________________________________________________
安装
选项A:Docker Pull(推荐)
docker pull ghcr.io/1cworkers/mcp-1c-standards:latest选项B:本地组装
git clone https://github.com/1CWorkers/mcp-1c-standards.git
cd mcp-1c-standards
docker build -t mcp-1c-standards .下面的例子使用 mcp-1c-standards 作为图像的名称。 如果你拖着 docker pull,取代 ghcr.io/1cworkers/mcp-1c-standards:latest.
______________________________________________________________________
连接到Cursor
步骤1:启动服务器
docker run -d \
--name mcp-1c-standard-review \
-p 3000:3000 \
-e MCP_TRANSPORT=http \
-v mcp-1c-data:/app/data \
mcp-1c-standards检查什么有效:
curl http://localhost:3000/health
# {"status":"ok","standards":15,"categories":10}第二步:配置游标
打开(或创建)文件 .cursor/mcp.json 在你的项目的根:
{
"mcpServers": {
"1c-standards": {
"url": "http://localhost:3000/mcp"
}
}
}步骤3:检查
- 重新启动Cursor(或重新启动窗口:
Ctrl+Shift+P→Reload Window) - 打开聊天室(Ctrl+L)并切换到模式 代理
- 写下:
Найди стандарт 1С про запросы в циклеCursor必须调用tool search_standards 并返回结果。
更多验证示例:
Проверь этот код на соответствие стандартам 1С:
Для Каждого Док Из МассивДокументов Цикл
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ * ИЗ Документ.Заказ ГДЕ Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", Док);
Результат = Запрос.Выполнить();
КонецЦикла;Какие стандарты 1С нужно соблюдать при работе с транзакциями и блокировками?步骤4(可选):全局设置
要使MCP服务器在所有Cursor项目中可用,请全局添加设置:
~/.cursor/mcp.json (格式与上面相同)。
______________________________________________________________________
连接Claude Code
选项1:HTTP(服务器在Docker中运行)
# Запустить сервер (если ещё не запущен)
docker run -d --name mcp-1c-standard-review -p 3000:3000 -e MCP_TRANSPORT=http -v mcp-1c-data:/app/data mcp-1c-standards
# Подключить
claude mcp add 1c-standards --transport http http://localhost:3000/mcp选项2:STDIO(Docker按需运行)
claude mcp add 1c-standards \
--transport stdio \
-- docker run -i --rm -v mcp-1c-data:/app/data mcp-1c-standards检查
claude mcp list
# Должен быть в списке: 1c-standards
# Запустить Claude Code и спросить
claude
> Используй инструмент search_standards чтобы найти стандарт 1С про именование переменных删除(如果需要)
claude mcp remove 1c-standards______________________________________________________________________
连接到Codex
选项1:HTTP(服务器已启动)
# Запустить сервер (если еще не запущен)
docker run -d --name mcp-1c-standard-review -p 3000:3000 -e MCP_TRANSPORT=http -v mcp-1c-data:/app/data mcp-1c-standards
# Подключить в Codex
codex mcp add 1c-standards --transport streamable_http http://localhost:3000/mcp选项2:STDIO(Docker按需运行)
codex mcp add 1c-standards \
--transport stdio \
-- docker run -i --rm -v mcp-1c-data:/app/data mcp-1c-standards检查
codex mcp list
# Должен быть в списке: 1c-standards删除(如果需要)
codex mcp remove 1c-standards______________________________________________________________________
连接Claude Desktop
打开设置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%\Claude\claude_desktop_config.json
添加:
{
"mcpServers": {
"1c-standards": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-v", "mcp-1c-data:/app/data",
"mcp-1c-standards"
]
}
}
}重新启动Claude Desktop。在工具列表中(图标)🔨) 必须有工具服务器。
______________________________________________________________________
从its.1c.ru下载完整的数据库
对于完整的工作,建议下载所有标准与its.1c.ru(需要订阅ITS)。内置数据库(~15个标准)用于演示和快速启动。
docker run -d \
--name mcp-1c-standard-review \
-p 3000:3000 \
-e MCP_TRANSPORT=http \
-e ITS_LOGIN=your-login@company.ru \
-e ITS_PASSWORD=your-its-password \
-e SCRAPE_ON_START=true \
-v mcp-1c-data:/app/data \
mcp-1c-standards第一次运行大约5-10分钟(下载)。数据存储在Volume中 mcp-1c-data不需要重新加载。
强制更新:
docker run --rm \
--entrypoint node \
--env-file .env \
-e FORCE_RESCRAPE=true \
-v mcp-1c-data:/app/data \
mcp-1c-standards \
build/scraper.js使用.env文件
不要在命令行中发送登录名/密码:
cp .env.example .env
nano .env # заполнить ITS_LOGIN, ITS_PASSWORD, SCRAPE_ON_START=truedocker run -d \
--name mcp-1c-standard-review \
-p 3000:3000 \
--env-file .env \
-v mcp-1c-data:/app/data \
mcp-1c-standards______________________________________________________________________
用户标准
添加您的公司标准-它们将与基本标准兼容。
步骤1:创建文件
mkdir my-standards
cat > my-standards/our-rules.json << 'EOF'
{
"categories": [
{ "id": "company", "name": "Стандарты нашей компании", "order": 50 }
],
"standards": [
{
"id": "company-001",
"category": "company",
"title": "Обязательный код-ревью перед мержем",
"url": "",
"tags": ["код-ревью", "процесс", "компания"],
"content": "Каждый merge request должен быть проверен минимум одним разработчиком..."
}
]
}
EOF步骤2:安装后启动
docker run -d \
--name mcp-1c-standard-review \
-p 3000:3000 \
-e MCP_TRANSPORT=http \
-e CUSTOM_STANDARDS_PATH=/app/custom-standards \
-v mcp-1c-data:/app/data \
-v $(pwd)/my-standards:/app/custom-standards:ro \
mcp-1c-standards如果 id 用户标准与基本标准相同,用户标准覆盖基本标准。
______________________________________________________________________
Docker Compose
对于那些更适合的人来说。文件 docker-compose.yml 已经在存储库了。
cp .env.example .env
nano .env
# Быстрый старт (встроенная база)
docker compose up mcp-http -d
# Полная база с its.1c.ru
docker compose up mcp-http-full -d
# Со своими стандартами
docker compose up mcp-http-custom -d
# Всё вместе
docker compose --profile full up -d______________________________________________________________________
MCP服务器工具
工具描述 |---|---| | search_standards 按标准进行全文搜索 | get_standard 标准化ID(标准化) | list_categories 类别列表与数量 | check_code 自动检查代码1C是否违反。 | get_standards_for_topic 关于主题的标准集
提示: code_review_1c, explain_standard
标准化ID(get_standard)
get_standard 接受任何格式的ID–下面的所有选项都会找到相同的标准:
std-534-全格式534只有一个数字std534-没有连字符std_534-强调Ограничение на использование запросов-搜索标题片段
如果找不到正确的ID,则会发生fallback:按标准URL中的数字搜索(/content/534/hdoc)然后在标题的子字段。
搜索标准(search_standards)
搜索工作没有外部依赖,也不需要API。一切都在容器内部本地完成。
俄语发音 -请求“锁定”查找带有“锁定”、“锁定”、“锁定”等字样的文档,反之亦然。使用Porter类词干,删除名词、形容词和动词的结尾。
同义词词典 可以用英语搜索。查询“循环查询”将找到“数据库查询使用限制”标准。Mapping包含40+个术语: lock →封锁, transaction 交易, naming 命名, form 形式, exception →例外, performance 生产力及其他
模糊匹配 -4个字符长的单词中的拼写错误将自动更正(公差为1个Levenstein距离字符)。例如,“锁”会找到“锁”。如果找不到精确和stemming匹配,fuzzy搜索只起到fallback的作用。
相关性评分 -结果按匹配权重排序:准确的标题(12)→标题(10)→标签(5-6)→内容(3)→fuzzy(1-6)。标题中的完整短语给出+25加成。
check_code显示
- 循环中的数据库查询
- 空块
Исключение НачатьТранзакцию无ПопыткаОтменитьТранзакцию无ВызватьИсключение- 单字变量名
- 2.代词(
Предупреждение,Вопрос) - 缺乏出口程序说明
- 编码码
РольДоступна代替ПравоДоступа
______________________________________________________________________
烟雾测试
验证正在运行的服务器的运行状况:
# Сервер должен быть запущен на localhost:3000
npm run test:smoke
# Или с другим адресом
node tests/smoke.mjs http://localhost:3001测试检查:
- 健康终点
- 搜索关键字(英文和英文)
- 顺序和重复查询
- 标准化ID(
436,std436,std-436,std_436) - 标题回落
- 检测Check_Code中的违规行为
______________________________________________________________________
建筑
mcp-1c-standards/
├── .github/workflows/
│ └── docker-publish.yml # CI: сборка и push в ghcr.io
├── src/
│ ├── index.ts # MCP-сервер (tools, prompts, HTTP/stdio)
│ └── scraper.ts # Скрапер its.1c.ru
├── tests/
│ └── smoke.mjs # Smoke-тесты через HTTP
├── data/
│ └── standards.json # Встроенная база (демо)
├── custom-standards/
│ └── example.json # Пример пользовательских стандартов
├── Dockerfile # Multi-stage build
├── docker-compose.yml # Compose-сценарии
├── docker-entrypoint.sh # Логика запуска контейнера
├── .env.example # Шаблон переменных
├── package.json
└── tsconfig.json集装箱启动时会发生什么
docker-entrypoint.sh
│
├── SCRAPE_ON_START=true?
│ └── ITS_LOGIN+ITS_PASSWORD → авторизация → загрузка → /app/data/standards.json
│
├── Нет standards.json?
│ └── Копируем встроенную базу
│
├── CUSTOM_STANDARDS_PATH задан?
│ └── Мержим пользовательские стандарты при загрузке
│
└── node build/index.js
├── MCP_TRANSPORT=stdio → stdin/stdout
└── MCP_TRANSPORT=http → http://0.0.0.0:3000/mcp许可证
麻省理工学院
开发标准是1C公司的财产。
