MCP server for FPGA hardware design in C⏚ — drive the open-source C⏚ Verilog compiler from an AI agent.
Project description
cg-agent-kit - an MCP server for FPGA design in C⏚
Give an AI agent the ability to design real hardware. cg-agent-kit is a
Model Context Protocol server that drives the
open-source C⏚ Verilog compiler - so an agent writes a C-like HDL, and the
server compiles, checks, generates Verilog, and synthesis-checks it against the
real toolchain instead of hallucinating Verilog that doesn't build.
C⏚ ("C-Ground") is a hardware description language with C-like syntax that compiles to clean, standard Verilog. The compiler is open source at github.com/Neosyn-Logic/cg-compiler.
Tools
| Tool | What it does |
|---|---|
cg_check |
Compile + validate C⏚; structured diagnostics (file:line, the fix) |
cg_generate_verilog |
Emit synthesizable Verilog |
cg_simulate |
Simulate a design (iverilog backend, or the commercial fast sim) |
cg_synth |
Yosys-synthesize the Verilog: REAL / FOLDED / SUSPECT verdict + cell count |
cg_example |
Scored lookup into a curated, validated-code dictionary (18 entries) |
cg_suggest_for_error |
Map a compiler error to the recipe with the fix pattern |
cg_fsm / cg_graph |
A task's compiled state machine / a network's graph |
cg_docs |
C⏚ language + patterns reference |
The kit's organizing idea: agents seed-and-adapt from validated code and verify against the real compiler at every step - not invent-from-scratch.
Open vs commercial
This kit and the compiler it drives are open. The fast (bytecode) cycle-accurate
simulator is part of the commercial Neosyn SDK - so cg_simulate's default
bytecode backend asks you to upgrade, while the iverilog backend works
fully (generate Verilog + run Icarus Verilog). Everything else -
check, generate, synth, the dictionary, docs - runs entirely on the open compiler.
More at neosyn.io/open.
Install
pip install cg-agent-kit
Then point it at a built C⏚ compiler jar (download the prebuilt jar from cg-compiler releases, or build from source):
export CG_JAR=/path/to/cg-language-server.jar
(Optional, for cg_synth and the iverilog sim backend, install yosys and
iverilog.)
Run
As an MCP server (for Claude Desktop, Cursor, Windsurf, or any MCP client):
cg-mcp-server
Add it to your MCP client config, e.g.:
{
"mcpServers": {
"cg": { "command": "cg-mcp-server", "env": { "CG_JAR": "/path/to/cg-language-server.jar" } }
}
}
Or call the verification functions directly from Python:
from cg_agent_kit import cg_mcp_server as cg
print(cg.check(open("Counter.cg").read()))
print(cg.generate(open("Counter.cg").read()))
The kit bundles 18 validated C⏚ designs and the language + CPU-pattern
references the cg_docs tool serves.
License
MIT - see LICENSE. C⏚ began as the Synflow Cx toolchain.
Project details
Release history Release notifications | RSS feed
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 cg_agent_kit-0.1.0.tar.gz.
File metadata
- Download URL: cg_agent_kit-0.1.0.tar.gz
- Upload date:
- Size: 47.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
35273b6b0fe8a51fa6b65086a7612aab4cdaba440a52f89fba06f1cba4195335
|
|
| MD5 |
9be3442276418df1068b84f022f24cc0
|
|
| BLAKE2b-256 |
b4a15ef683fee190d878ebfe8f183d2acdc0b83f67ad74ada87db3a6619e1cd8
|
File details
Details for the file cg_agent_kit-0.1.0-py3-none-any.whl.
File metadata
- Download URL: cg_agent_kit-0.1.0-py3-none-any.whl
- Upload date:
- Size: 55.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3517057fdee05798e29a8c06f1b2cfa4ea295b289b51d23b6881af4b1dbd5200
|
|
| MD5 |
8cdc7ba1242d6c8fd8b44c6a48b5b367
|
|
| BLAKE2b-256 |
cefc302aba29eef40bf7fd983057299c41b243c641e680e18afc8bf751224e6e
|