just-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@just-mcpList the available recipes"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
just-mcp
π 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 Abstraction
If 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 Curve
No 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.
Safer Than Raw Bash Access
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 Tool
Just-mcp is perfect for anybody doing agent execution:
Ultra-low overhead - probably better than every other tool
Human-friendly - justfiles are easy for humans and low overhead for LLMs
Quick and dirty - while some prefer full Python FastAPI servers, just-mcp is just easy-as
sm0l model friendly - works great with self-hostable GPU/CPU open source models with 8k-32k context limits
Built-in Safety Patterns
Just has useful patterns for introducing:
Transparent logging without distracting the agent
Secondary model inspection - use sm0l models to scan commands asking "is this harmful?" before execution
Python decorator-like patterns for command validation
Idempotent execution backed by git repos
Related MCP server: mcp-cli-catalog
b00t
b00t mcp create just-mcp -- bash just-mcp --stdio "${REPO_ROOT}"
b00t mcp export just-mcpπ Current Status: 67% Complete (8/12 core tasks)
β Implemented Features
ποΈ Complete MCP Server - Full rmcp 0.3.0 integration with MCP 2024-11-05 protocol
π Recipe Discovery - Parse and list all available Justfile recipes
β‘ Recipe Execution - Execute recipes with parameters and capture structured output
π Recipe Introspection - Get detailed recipe information, parameters, and documentation
β Justfile Validation - Syntax and semantic validation with error reporting
π Environment Management - Comprehensive .env file support and variable expansion
π§ͺ Full Test Coverage - 33 passing tests across integration and unit test suites
π― MCP Tools Available
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
π Quick Start
Installation
Choose your preferred installation method:
npm (JavaScript/TypeScript)
# Install globally
npm install -g just-mcp
# Or use with npx (no installation required)
npx just-mcp --stdiopip (Python)
# Install with pip
pip install just-mcp
# Or use with uvx (recommended)
uvx just-mcp --stdioCargo (Rust)
# Install from crates.io
cargo install just-mcp
# Or build from source
git clone https://github.com/promptexecution/just-mcp
cd just-mcp
cargo build --releasepkgx (pkgxdev)
pkgx just-mcp --stdiopkgx downloads the platform-specific tarball that GitHub releases expose (just-mcp-*-*.tar.gz), extracts the executable into ${PKGX_DIR:-$HOME/.pkgx}/bin, and runs the CLI with the arguments you pass. Add that bin directory to your shellβs PATH if you need just-mcp available long-term. The packaging manifest lives in pkgx/projects/github.com/promptexecution/just-mcp/package.yml and mirrors the pkgxdev/pantry entry.
Using Docker
# Pull the latest image from GitHub Container Registry
docker pull ghcr.io/promptexecution/just-mcp:latest
# Run with Docker
docker run --rm -v $(pwd):/workspace ghcr.io/promptexecution/just-mcp:latest --stdio
# Build locally
docker build -t just-mcp:local .
docker run --rm -v $(pwd):/workspace just-mcp:local --stdioAvailable Docker image tags:
latest- Latest stable releaseX.Y.Z- Specific version (e.g.,0.1.0)X.Y- Latest patch version (e.g.,0.1)X- Latest minor version (e.g.,0)
Claude Desktop Integration
Using npm/npx
Add to your Claude Desktop MCP configuration:
Using Binary
{
"mcpServers": {
"just-mcp": {
"command": "npx",
"args": ["-y", "just-mcp", "--stdio"]
}
}
}Using pip/uvx
{
"mcpServers": {
"just-mcp": {
"command": "uvx",
"args": ["just-mcp", "--stdio"]
}
}
}Using cargo or manual install
{
"mcpServers": {
"just-mcp": {
"command": "/path/to/just-mcp",
"args": ["--stdio"]
}
}
}Using Docker
{
"mcpServers": {
"just-mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-v",
"${workspaceFolder}:/workspace",
"ghcr.io/promptexecution/just-mcp:latest",
"--stdio"
]
}
}
}Usage Examples
# Run as MCP server
just-mcp --stdio
# Run in specific directory
just-mcp --directory /path/to/project --stdio
# Using Docker
docker run --rm -v $(pwd):/workspace ghcr.io/promptexecution/just-mcp:latest --stdioπ§ͺ Testing
Comprehensive Test Suite
# 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 testingTest Architecture
basic_mcp_test.rs- Direct protocol compliance testing using raw JSON-RPCmcp_integration_working.rs- Type-safe SDK integration testing with rmcp clientUnit tests - 25+ tests covering parser, executor, validator, and environment modules
π Architecture
Project Structure
just-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 recipesTech Stack
Rust 1.82+ with async/await support
rmcp 0.3.0 - Official MCP SDK for Rust
serde/serde_json - JSON serialization
snafu - Structured error handling
tokio - Async runtime
π Development Roadmap
π― Next Priority Tasks (Remaining 33%)
LSP-Style Completion System - Intelligent autocompletion for recipes and parameters
Enhanced Diagnostics - Advanced syntax error reporting and suggestions
Virtual File System - Support for stdin, remote sources, and in-memory buffers
Release Preparation - Documentation, CI/CD, and crate publication
π Future Enhancements
Plugin system for custom recipe types
Integration with other build tools
Performance optimizations for large justfiles
Advanced dependency visualization
π Usage Patterns
Recipe Execution
// 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"
});Validation
// Validate justfile
await client.callTool("validate_justfile", {
"justfile_path": "./custom.justfile"
});π€ Contributing
This project follows the b00t development methodology:
TDD Approach - Tests first, implementation second
Feature Branches - Never work directly on main branch
Structured Errors - Use snafu for error management
Git Workflow - Clean commits with descriptive messages
Development Commands
just build # Build the project
just test # Run tests
just server # Start MCP server
just clean # Clean build artifactsπ License
This project is licensed under LICENSE.
π Release Setup & CI/CD
β Completed Setup
Cocogitto & Conventional Commits
Installed cocogitto for conventional commit enforcement
Configured
cog.tomlwith proper commit types and changelog settingsSet up git hooks for commit message linting (
commit-msg) and pre-push testing
GitHub Actions CI/CD
CI Pipeline (
ci.yml): Multi-platform testing (Ubuntu, Windows, macOS), formatting, clippy, commit lintingRelease Pipeline (
release.yml): Automated versioning, changelog generation, GitHub releases, and crates.io publishingBinary Builds (
build-binaries.yml): Cross-platform binary compilation for npm and pip packagesContainer Pipeline (
container.yaml): Multi-platform Docker image builds (linux/amd64, linux/arm64) pushed to GitHub Container Registry
Docker Images
Multi-platform builds for
linux/amd64andlinux/arm64Minimal image size using static musl binaries and scratch base image
Automatic tagging with semantic versioning (major, major.minor, major.minor.patch, latest)
Published to GitHub Container Registry (ghcr.io)
Integrated with release workflow for automatic deployment
Crates.io Preparation
Updated both
Cargo.tomlfiles with complete metadata (description, keywords, categories, license, etc.)Added proper exclusions for development-only files
Verified MIT license is in place
Documentation & Structure
README.md is production-ready with installation and usage instructions
Created initial
CHANGELOG.mdfor release trackingUpdated
.gitignorewith Rust-specific entries
π Production Deployment
Development Workflow:
All commits must follow conventional commit format (enforced by git hooks)
Use
feat:,fix:,docs:, etc. prefixes for automatic versioningPush to
mainbranch triggers automated releases and crates.io publishingLibrary tests pass β (25/25) with comprehensive test coverage
Release Process:
Automated Versioning: Cocogitto analyzes commit messages for semantic versioning
GitHub Releases: Automatic changelog generation and GitHub release creation
Binary Distribution: Pre-built binaries for Linux (x86_64, aarch64), macOS (x86_64, aarch64), and Windows (x86_64)
Crates.io Publishing: Library crate (
just-mcp-lib) publishes first, then binary crate (just-mcp)npm Publishing: Wrapper package for easy Node.js/TypeScript integration
PyPI Publishing: Python wrapper package for pip/uvx installation
CI/CD Pipeline: Multi-platform testing (Ubuntu, Windows, macOS) with formatting and clippy checks
Installation Methods:
# npm (JavaScript/TypeScript ecosystems)
npm install -g just-mcp
# or
npx just-mcp --stdio
# pip (Python ecosystems)
pip install just-mcp
# or
uvx just-mcp --stdio
# cargo (Rust ecosystem)
cargo install just-mcp
# Download pre-built binaries
wget https://github.com/promptexecution/just-mcp/releases/latest/download/just-mcp-x86_64-unknown-linux-gnu.tar.gz
# Or use Docker
docker pull ghcr.io/promptexecution/just-mcp:latest
# Or download from GitHub releases
wget https://github.com/promptexecution/just-mcp/releases/latest/download/just-mcpπ Related Projects
Just - The command runner this integrates with
Model Context Protocol - The protocol specification
rmcp - Official Rust MCP SDK
Friends of just-mcp
just-vscode - VSCode extension with LSP integration for enhanced Just authoring
just-awesome-agents - Collection of patterns and tools for agent execution with Just# Test change to trigger pre-push hook
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceAn MCP server that exposes Makefile targets as callable tools for AI assistants, allowing Claude and similar models to execute Make commands with provided arguments.MIT
- Alicense-qualityDmaintenanceAn MCP server that publishes CLI tools on your machine for discoverability by LLMs81MIT
- Alicense-qualityAmaintenanceUniversal MCP server that wraps any CLI tool, enabling AI assistants to run commands via natural language.MIT
- FlicenseBqualityCmaintenanceA lightweight MCP server that enables AI assistants to interact with the local machine through terminal, filesystem, and Python execution tools.91
Related MCP Connectors
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yoβ¦
MCP server for generating rough-draft project plans from natural-language prompts.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/PromptExecution/just-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server