An open API service indexing awesome lists of open source software.

https://github.com/toolprint/just-mcp

Share the same project justfile tasks with your AI Coding Agent.
https://github.com/toolprint/just-mcp

agents claude-code gemini-cli just justfile llm mcp mcp-server vibe-coding

Last synced: 12 days ago
JSON representation

Share the same project justfile tasks with your AI Coding Agent.

Awesome Lists containing this project

README

          

# just-mcp

[![CI](https://github.com/onegrep/just-mcp/actions/workflows/dagger-ci.yml/badge.svg)](https://github.com/onegrep/just-mcp/actions/workflows/dagger-ci.yml)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Rust](https://img.shields.io/badge/rust-1.88+-blue.svg)](https://www.rust-lang.org)
[![MCP](https://img.shields.io/badge/MCP-1.0-green.svg)](https://modelcontextprotocol.io/)
[![Vector Search](https://img.shields.io/badge/Vector%20Search-Optional-orange.svg)](https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2)

> Transform justfiles into AI-accessible automation tools through the Model Context Protocol

**just-mcp** bridges [justfiles](https://just.systems/) and Coding Agents by exposing justfile recipes as dynamically discoverable MCP tools.

This enables AI assistants to understand, explore, and execute a project's common development workflows similar to how a human would.

just-mcp

## Quick Start

**1. Install just-mcp**
```bash
# Using cargo-binstall (fastest - downloads pre-built binary)
cargo binstall --git https://github.com/toolprint/just-mcp just-mcp

# Or download latest release
curl -L https://github.com/toolprint/just-mcp/releases/latest/download/just-mcp-$(uname -m)-$(uname -s).tar.gz | tar xz
sudo mv just-mcp /usr/local/bin/
```

**2. Configure your Agent** (see [MCP Client Setup](#mcp-client-setup) below)

**3. Use the Slash Command**:

```bash
/just:do-it build the project
```

It will find the appropriate justfile task to run as an MCP Tool.

That's it. Your AI can now use your justfile tasks.

## MCP Client Setup

Claude Code

```bash
claude mcp add -s user -t stdio just -- just-mcp
```

Or manually add to `~/.claude.json`:

```json
{
"mcpServers": {
"just": {
"type": "stdio",
"command": "just-mcp"
}
}
}
```

**Verification**: Start a new session and check /mcp for 'just' and view details to see how many tools loaded.

Claude Desktop

**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
"mcpServers": {
"just": {
"command": "just-mcp",
"args": ["--watch-dir", "/Users/username/workspace/your-project-dir"],
}
}
}
```

**Verification**: Restart Claude Desktop, check the settings button for custom connection tools.

Cline (VS Code Extension)

1. Click Cline icon → **MCP Servers** → **Configure MCP Servers**
2. Add configuration:

```json
{
"mcpServers": {
"just": {
"disabled": false,
"timeout": 60,
"type": "stdio",
"command": "just-mcp",
"args": [
"-w",
"/Users/username/your-project-dir"
]
}
}
```

**Verification**: Look for MCP server status in Cline's interface.

**NOTE:** Since cline runs outside of your current project working directory you MUST specify the watch-dir or use the admin tools at runtime to ask Cline to switch the watch-dir for you.

## Key Features

### 🔍 **Smart Justfile Discovery**
- Real-time monitoring with hot reloading
- Defaults to use the current project root directory to look for your justfile
- Dynamic tool generation from your tasks

### 📝 **Advanced Parsing**
- AST-based parser using Tree-sitter for complete syntax support
- Parameter documentation from comments: `# {{param}}: description`
- Three-tier fallback: AST → CLI → Regex for maximum compatibility

### 🛡️ **Security First**
- Input validation prevents command injection
- Configurable timeouts and resource limits
- Directory whitelisting and parameter sanitization

### ⚙️ **Admin Tools**
- `admin_sync`: Refresh tool registry
- `admin_create_task`: AI-assisted task creation with backup

### 🔍 **Vector Search** *(Optional)*
- **Offline semantic search** with local embeddings (no API keys)
- Natural language queries: *"deploy to production"*
- Cross-project discovery of similar automation patterns
- See [Vector Search docs](docs/features/vector-search.md)

## Example Workflow

Given this justfile:
```just
# Deploy the application
deploy env="prod":
echo "Deploying to {{env}}"
./deploy.sh {{env}}

# Run tests with coverage
test coverage="false":
cargo test {{if coverage == "true" { "--coverage" } else { "" }}}
```

Your AI assistant can:
- **Discover**: "What tasks are available?"
- **Execute**: "Deploy to staging" → runs `deploy env="staging"`
- **Understand**: Sees parameters, descriptions, and dependencies

## Installation Options

### Pre-built Binaries (Recommended)

Download from [GitHub Releases](https://github.com/toolprint/just-mcp/releases/latest):

```bash
# Linux x86_64
curl -L https://github.com/toolprint/just-mcp/releases/latest/download/just-mcp-x86_64-unknown-linux-gnu.tar.gz | tar xz

# Linux ARM64
curl -L https://github.com/toolprint/just-mcp/releases/latest/download/just-mcp-aarch64-unknown-linux-gnu.tar.gz | tar xz

# macOS (Universal - works on Intel and Apple Silicon)
curl -L https://github.com/toolprint/just-mcp/releases/latest/download/just-mcp-universal2-apple-darwin.tar.gz | tar xz
```

### From Source

```bash
git clone https://github.com/toolprint/just-mcp.git
cd just-mcp
just quickstart # Complete setup + install
```

Or manually:
```bash
cargo install --path . --features all # All features including vector search
```

## Development

### Setup
```bash
just quickstart # Complete setup for new developers
just dev-setup # Comprehensive development environment
```

### Workspace Structure
- `./` - Main MCP server
- `dev-tools/` - Performance analysis utilities

### Common Commands
```bash
just build # Build main server
just build-dev-tools # Build development utilities
just test # Run tests
just check # Format, lint, test (pre-commit)
```

## Multi-Project Example

Monitor multiple projects with custom names:

```bash
just-mcp \
--watch-dir ~/projects/api:backend \
--watch-dir ~/projects/web:frontend \
--watch-dir ~/infrastructure:infra
```

Tools will be available as:
- `just_deploy@backend`
- `just_build@frontend`
- `just_apply@infra`

## Documentation

- **[Configuration Guide](docs/CONFIGURATION.md)** - Detailed setup for all MCP clients
- **[Vector Search](docs/features/vector-search.md)** - Semantic search with natural language
- **[Troubleshooting](docs/troubleshooting.md)** - Common issues and solutions
- **[Contributing](CONTRIBUTING.md)** - Development workflow and guidelines

## Architecture

```
Justfile Watcher → AST Parser → Tool Registry → MCP Server → AI Assistant
↓ ↓ ↓ ↓
File Changes → Dynamic Updates → Real-time → Task Execution
```

**Key Design Principles:**
- **Async-first**: Tokio-based for concurrent operations
- **Security-focused**: All inputs validated, resources limited
- **Hot-reload**: File changes trigger automatic tool updates
- **Zero-config**: Works with existing justfiles

## Contributing

We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.

Quick steps:
1. `just quickstart` - Set up development environment
2. Make your changes and add tests
3. `just check` - Ensure code quality
4. Submit a Pull Request

## License

MIT License - see [LICENSE](LICENSE) for details.

## Acknowledgments

- [just](https://just.systems/) - The command runner that inspired this project
- [Model Context Protocol](https://modelcontextprotocol.io/) - Enabling AI-tool communication
- [Anthropic](https://anthropic.com/) - For developing the MCP standard

---

**Need help?** Check [troubleshooting](docs/troubleshooting.md) or open an issue on GitHub.