brainfaq-mcp
by labarilem
README.md
# brainfaq-mcp
MCP server for the [Brainfuck](https://esolangs.org/wiki/Brainfuck) programming language that allows your favourite LLM to debug Brainfuck programs.
## Usage
Use this command to run the MCP server:
```
npx brainfaq-mcp
```
To use it in VS Code, add the following JSON snippet to `.vscode/mcp.json` (create the file if you don't have it):
```json
{
"servers": {
"brainfaq-mcp": {
"command": "npx",
"args": ["brainfaq-mcp"]
}
}
}
```
The MCP can be added to other IDEs with LLM agents support (e.g. Cursor) in similar ways. Check their documentation and configure them to run `npx brainfaq-mcp`. It will start the MCP server in stdio mode.
## Features
### MCP Tools
- **load_code** - Reset the debugger and load new Brainfuck source code. Supports configurable tape size, min/max cell values, and initial input.
- **step** - Execute a specified number of instructions (default 1) with detailed state output.
- **run** - Run the program until it finishes or waits for input, with optional instruction limit.
- **add_input** - Append characters to the input buffer when the program is waiting for input.
- **get_state** - Get the current interpreter state (memory, pointers, output) with optional windowing.
- **read_output** - Get the complete output string generated so far.
### Capabilities
- Full Brainfuck support (8 operations: `>`, `<`, `+`, `-`, `.`, `,`, `[`, `]`)
- Overflow/underflow detection with configurable value limits
- Bracket matching validation and loop control
- Step-by-step execution and debugging
- Memory protection with configurable tape size
## Development
Setup:
```
npm i
```
Build:
```
npm run build
```
Tests:
```
npm run test
```
Tests are inspired by the [Brainfuck test suite](https://brainfuck.org/tests.b) by Daniel Cristofani.
## Release
Build first the source code using the command above.
Login to NPM:
```
npm login
```
Publish to NPM:
```
npm publish
```
## License
All work in this repos is licensed under "Creative Commons Attribution-ShareAlike 4.0 International License".
TDQS
A3.7/5.0
Scored across 6 tools
Disambiguation5/5
Each tool has a clear, distinct purpose: loading code, stepping, running, input/output, and state inspection. No overlap or ambiguity.
Naming Consistency5/5
All tool names follow a consistent verb_noun pattern (add_input, get_state, load_code, read_output, run, step), with the exception of 'step' which is a verb but fits the pattern.
Tool Count5/5
6 tools is well-scoped for a Brainfuck debugger/interpreter, covering all essential operations without unnecessary bloat.
Completeness4/5
The tool set covers the core workflow (load, step, run, input, output, state) but lacks an explicit stop/interrupt mechanism, which is a minor gap given the warning about infinite loops.
Maintenance
ActivityInactive
ResponsivenessNo issues