An MCP server that bridges LLMs to the Ceedling C unit testing framework
Project description
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
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 ceedling_mcp-0.1.0.tar.gz.
File metadata
- Download URL: ceedling_mcp-0.1.0.tar.gz
- Upload date:
- Size: 5.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
019004d18f4203888a0858c44c8dc2a040083c2358c145f531849b9c33d0e8fe
|
|
| MD5 |
1bf6f2724be58067e6db3299c362787d
|
|
| BLAKE2b-256 |
32435347a3221f86b7e19609bdfb62ea43820103bb933e067bf1b0224d7e6205
|
File details
Details for the file ceedling_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: ceedling_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ec54d049ab284a695017b72f65a26645ce330d5b5651b7abbc0f36d6e553d5c
|
|
| MD5 |
d3e4b407577611bc2782b2440b4e8bb8
|
|
| BLAKE2b-256 |
20707dcf5a22c7b701fc943728cafd0285448de9a0ae2a94f4e77b6e02ecb0e1
|