BSL syntax-help MCP
Docker services with hybrid search (FTS5 plus embeddings) over the 1C platform syntax helper, exported from 1C:EDT by a Tycho plugin
Low risk
We rate an entry low when it mostly gives the agent instructions and reference material.
Why this level
- MCP tools only read and search the reference data; ingest is done separately behind its own token
Install
Manual install
docker network create syntax-help && docker compose -f docker/giga/docker-compose.yml up -d --build && docker compose -f docker/mcp/docker-compose.yml up -d --buildBrings up both services; giga takes longer to build due to model weights.
This is third-party code. Review the repository files before installing.
What it does
The project has two Docker services plus a 1C:EDT plugin. The plugin exports the platform syntax helper from EDT over HTTP into an ingest service. A CPU-based FastAPI service stores cards in SQLite with FTS5 and sqlite-vec, exposing Comol-style MCP tools: docinfo, docsearch, docmembers. A separate GPU service computes embeddings with the Giga-Embeddings-instruct model over an OpenAI-compatible API; without it, search falls back to FTS-only. The embedding model is swappable: the README documents switching to BAAI/bge-m3 with a smaller dimension and no instruct prefix.
Who it is for. For 1C developer teams on 1C:EDT with a GPU for local embeddings who need semantic, not just text, search over the syntax helper.
Good fit when
- You need semantic search over the syntax helper, not just exact text match
- You have 1C:EDT and want to export the help directly from the IDE
- You need to move a ready index to another machine without re-exporting
Not a fit when
- No GPU for the embeddings container: the first run pulls about 13 GB of model weights
- You already use HelpSearchServer: tool names collide, do not run both together
Example request
Find the method for finding an array element by value and show its syntaxLimitations
The first GPU service run needs building a CUDA 12.6 image and downloading about 13 GB of weights; an RTX 3090 or comparable GPU is needed for comfortable use. The indexed corpus is not stored in git, it lives as SQLite files on the host and needs manual transfer between machines. Do not run it alongside HelpSearchServer due to overlapping tool names.
How to disable. Stop both stacks with docker compose down in docker/giga and docker/mcp, and remove the server from Cursor's mcp.json.
MCP
- Transport
- http
- Authentication
- API key
| Environment variables | |
|---|---|
| INGEST_TOKEN required, secret | Token for data ingest from the EDT plugin and admin operations. |
| MCP_TOKEN required, secret | Access token for the MCP endpoint. |
Security check
- MCP tools only read and search the reference data; ingest is done separately behind its own token
README in short
The README describes the two Docker services plus the EDT plugin, loopback-only ports, manual ingest via curl with a token, a recipe for switching the embedding model to BAAI/bge-m3, a detailed guide for moving the SQLite corpus between machines with a WAL checkpoint, installing the EDT plugin from a GitHub Pages update site, and connecting in Cursor with a Bearer token.
FAQ
What if the GPU service is unavailable?
MCP switches to degraded state and keeps searching via FTS; hybrid search returns once Giga is healthy again.
Can the embedding model be changed?
Yes, the README describes switching to BAAI/bge-m3, adjusting EXPECTED_EMBED_DIM and doing a mandatory full reindex.
Related
A skills library that gives coding agents a development process: brainstorming, planning, TDD, subagents and code review
Skills for real engineers by Matt Pocock
Skills For Real Engineers
Small composable skills for engineering with agents: plan grilling, TDD, bug diagnosis, code review and architecture
GitHub toolkit for spec-driven development: the specify CLI adds agent commands and skills to a project, from principles to implementation
Reference MCP servers
Model Context Protocol servers
Official reference MCP servers: Filesystem, Fetch, Git, Memory, Sequential Thinking, Time and Everything