๐ A way to let LLMs speak Just
A production-ready MCP server that provides seamless integration with Just command runner, enabling AI assistants to discover, execute, and introspect Justfile recipes through the standardized MCP protocol.
๐ฏ Why Just + MCP = Better Agent Execution Context-Saving AbstractionIf it isn't immediately obvious, the benefit of having LLMs use Just vs. bash is that running Just commands (via MCP) provides a context-saving abstraction where they don't need to waste context opening/reading bash files, Python scripts, or other build artifacts. The LLM via MCP simply gets the command, parameters, and hints - it's in their memory as "these are commands available to you."
Eliminates the Justfile Learning CurveNo more watching LLMs execute just -l
to get command lists, inevitably start reading the justfile, then try to write justfile syntax (like it's a Makefile), corrupt the justfile, and create a bad experience. Just's evolving syntax simply doesn't have a large enough corpus in frontier models today - we need more popular repos with justfiles in the training dataset.
Just-mcp is fundamentally safer than bash. If you read HackerNews, there's a story at least once daily about operators whose LLMs start forgetting, hallucinating, and eventually breaking down - deleting files and doing nasty unwanted things. Giving LLMs unsupervised, unrestricted bash access without carefully monitoring context consumption is a recipe for disaster.
Using Justfile fixes that. Even if the LLM modifies its own justfile, the next context is memoized by the justfile (hopefully in an idempotent git repo). This abstraction shields the llm from the command line complexity where hallucinations or attention tracking the current working directory cause it to go over the rails and off the cliff.
Powerful Agent Execution ToolJust-mcp is perfect for anybody doing agent execution:
Just has useful patterns for introducing:
b00t mcp create just-mcp -- bash just-mcp --stdio "${REPO_ROOT}"
b00t mcp export just-mcp
๐ Current Status: 67% Complete (8/12 core tasks)
list_recipes
- List all available recipes in the justfilerun_recipe
- Execute a specific recipe with optional argumentsget_recipe_info
- Get detailed information about a specific recipevalidate_justfile
- Validate the justfile for syntax and semantic errors# Clone and build git clone <repository-url> cd just-mcp cargo build --release # Test the server cargo run -- --stdioClaude Desktop Integration
Add to your Claude Desktop MCP configuration:
{ "mcpServers": { "just-mcp": { "command": "/path/to/just-mcp", "args": ["--stdio"] } } }
# Run as MCP server just-mcp --stdio # Run in specific directory just-mcp --directory /path/to/project --stdio
# Run all tests (33 tests) cargo test # Run specific test suites cargo test --test basic_mcp_test # Protocol compliance testing cargo test --test mcp_integration_working # SDK integration testing
basic_mcp_test.rs
- Direct protocol compliance testing using raw JSON-RPCmcp_integration_working.rs
- Type-safe SDK integration testing with rmcp clientjust-mcp/
โโโ src/main.rs # CLI binary
โโโ just-mcp-lib/ # Core library
โ โโโ parser.rs # Justfile parsing
โ โโโ executor.rs # Recipe execution
โ โโโ validator.rs # Validation logic
โ โโโ environment.rs # Environment management
โ โโโ mcp_server.rs # MCP protocol implementation
โโโ tests/ # Integration tests
โโโ justfile # Demo recipes
// List available recipes await client.callTool("list_recipes", {}); // Execute recipe with parameters await client.callTool("run_recipe", { "recipe_name": "build", "args": "[\"--release\"]" }); // Get recipe information await client.callTool("get_recipe_info", { "recipe_name": "test" });
// Validate justfile await client.callTool("validate_justfile", { "justfile_path": "./custom.justfile" });
This project follows the b00t development methodology:
just build # Build the project just test # Run tests just server # Start MCP server just clean # Clean build artifacts
This project is licensed under LICENSE.
Cocogitto & Conventional Commitscog.toml
with proper commit types and changelog settingscommit-msg
) and pre-push testingci.yml
): Multi-platform testing (Ubuntu, Windows, macOS), formatting, clippy, commit lintingrelease.yml
): Automated versioning, changelog generation, GitHub releases, and crates.io publishingCargo.toml
files with complete metadata (description, keywords, categories, license, etc.)CHANGELOG.md
for release tracking.gitignore
with Rust-specific entriesfeat:
, fix:
, docs:
, etc. prefixes for automatic versioningmain
branch triggers automated releases and crates.io publishingjust-mcp-lib
) publishes first, then binary crate (just-mcp
)# Install from crates.io cargo install just-mcp # Or download from GitHub releases wget https://github.com/promptexecution/just-mcp/releases/latest/download/just-mcp
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4