Ceedling MCP Server
An MCP (Model Context Protocol) server that bridges LLMs to the Ceedling C unit testing framework. Designed for zero-setup execution via uvx.
Features
| Tool | Description |
|---|---|
run_all_tests |
Execute the full Ceedling test suite |
run_module_tests |
Run tests for a specific module by name |
create_module |
Scaffold new source/header/test file triplets |
Intelligent output filtering — Successes are summarized compactly; failures are extracted with precise file, line number, and assertion error messages.
Prerequisites
- Python ≥ 3.10
- Ceedling installed and on PATH (
gem install ceedling) - uv (for
uvxexecution): https://docs.astral.sh/uv/
Project Structure
ceedling-mcp-server/
├── pyproject.toml
├── README.md
└── src/
├── __init__.py
├── server.py # FastMCP server + tool definitions
└── parser.py # Intelligent output parser
Quick Start
Run directly with uvx (no install needed)
From the project root:
uvx --from . ceedling-mcp
Or if published to PyPI:
uvx ceedling_mcp
Install locally for development
uv venv
uv pip install .
ceedling-mcp
Note: Editable installs (
-e) are not supported with thesrc/→ceedling_mcpsource remapping. Useuv pip install .instead.
Use with the MCP Inspector
npx -y @modelcontextprotocol/inspector uvx --from . ceedling-mcp
Client Configuration
Gemini CLI / Claude Desktop
Add to your MCP config:
{
"mcpServers": {
"ceedling": {
"command": "uvx",
"args": ["--from", "/absolute/path/to/ceedling-mcp-server", "ceedling-mcp"]
}
}
}
Output Examples
All tests pass
✅ All 12 tests passed.
Failures detected
❌ 2 of 12 tests FAILED (10 passed, 0 ignored)
--- Failure Details ---
FAIL test/test_Foo.c:42 — test_Foo_should_ReturnOne
Expected 1 Was 0
FAIL test/test_Bar.c:18 — test_Bar_should_Initialize
Expected TRUE Was FALSE
Build error
🔴 BUILD ERRORS — tests did not execute
src/Foo.c:10: use of undeclared identifier 'x'
License
MIT
Metadata
Release files for ceedling_mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ceedling_mcp-0.1.0.tar.gz | 5.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ceedling_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.0 kB
Release files / ceedling_mcp-0.1.0.tar.gz
| Download URL | ceedling_mcp-0.1.0.tar.gz |
|---|---|
| Size | 5.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
019004d18f4203888a0858c44c8dc2a040083c2358c145f531849b9c33d0e8fe
|
|
BLAKE2b-256 checksum How to use checksums |
32435347a3221f86b7e19609bdfb62ea43820103bb933e067bf1b0224d7e6205
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.17
|
Release files / ceedling_mcp-0.1.0-py3-none-any.whl
| Download URL | ceedling_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 7.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4ec54d049ab284a695017b72f65a26645ce330d5b5651b7abbc0f36d6e553d5c
|
|
BLAKE2b-256 checksum How to use checksums |
20707dcf5a22c7b701fc943728cafd0285448de9a0ae2a94f4e77b6e02ecb0e1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.17
|