MCP server for cursor-tools/cursor-tools
Project description
mcp-vibe-tools
mcp server wrapper for
cursor-tools(nowvibe-tools).
This project provides an MCP (Model Context Protocol) server built with MCP Python SDK that wraps the vibe-tools CLI (formerly cursor-tools), allowing AI agents or other services (like Claude Desktop) to interact with vibe-tools without using the command line directly..
Table of Contents
- Overview
- Features
- Prerequisites
- Installation
- Running the Server
- Environment Variables
- Available MCP Tools
- Development
- Contributing
- License
Overview
This server exposes endpoints corresponding to various vibe-tools commands (like repo, plan, web, browser, xcode, etc.). It translates JSON request bodies into CLI arguments, executes the command in the correct working directory, and returns the output.
It is implemented in Python using Python MCP SDK (https://github.com/modelcontextprotocol/python-sdk).
A key feature is the ability to dynamically set the working directory for context-dependent commands, enabling interaction with multiple projects without restarting the server.
Features
- Wraps ALL
vibe-toolscommands. - Manages execution context (working directory) dynamically.
- Allows changing the target project directory via an MCP tool.
- Handles parameter mapping from JSON to CLI flags.
- Provides async tool support with proper context injection.
- Includes unit tests for core functionality.
Prerequisites
-
Python 3.11+
-
vibe-tools CLI
- Must be installed globally (
npm install -g vibe-toolsorpnpm install -g vibe-tools) - Properly configured with API keys,
.repomixignore, etc. - See vibe-tools repo
- Must be installed globally (
-
Install Python dependencies
pip install -r requirements.txt
Installation
The recommended way to install mcp-vibe-tools is using uv:
uv tool install mcp-vibe-tools
This will install the CLI entry point mcp-vibe-tools into your uv tool environment.
You can then run the server with:
uv run mcp-vibe-tools
Make sure you have the vibe-tools CLI installed globally via npm or pnpm:
npm install -g vibe-tools
Important: Set the environment variable VIBE_TOOLS_PATH to the absolute path of your vibe-tools binary (usually something like /usr/local/bin/vibe-tools):
export VIBE_TOOLS_PATH=/absolute/path/to/vibe-tools
Example mcp.json configuration
Add this block to your MCP client's configuration to connect:
{
"mcpServers": {
"vibe-tools": {
"name": "uv",
"args": [
"run",
"mcp-vibe-tools"
],
"env": {
"VIBE_TOOLS_PATH": "/absolute/path/to/vibe-tools",
"CWD": "/path/to/your/project"
}
}
}
}
Running the Server
Start the FastMCP server:
uv run mcp-vibe-tools
Environment Variables
VIBE_TOOLS_PATH(preferred): Absolute path or command name for thevibe-toolsCLI executable.CURSOR_TOOLS_PATH(legacy, still supported): Same as above.CWD: Initial working directory for all commands. Setting this eliminates the need to callset_working_directoryfirst.- If both
VIBE_TOOLS_PATHandCURSOR_TOOLS_PATHare set,VIBE_TOOLS_PATHtakes precedence. - If neither is set, defaults to
'cursor-tools'(or'vibe-tools'if aliased).
Available MCP Tools
ask
Ask any AI model a direct question. Parameters:
query(string): The question to ask.--provider(string): AI provider (openai, anthropic, perplexity, gemini, modelbox, openrouter).--model(string, required): Model to use.--reasoning-effort(low|medium|high): Depth of reasoning.
plan
Generate a focused implementation plan using AI. Parameters:
query(string): The task or feature to plan.--fileProvider(string): Provider for file identification.--thinkingProvider(string): Provider for plan generation.--fileModel(string): Model for file identification.--thinkingModel(string): Model for plan generation.
repo
Ask questions about the current repository context. Parameters:
query(string): The question about the repo.--subdir(string): Subdirectory to analyze.--from-github(string): Remote GitHub repo to analyze.--provider(string): AI provider.--model(string): Model to use.
web
Perform web search or autonomous web agent queries. Parameters:
query(string): The question or search task.--provider(string): AI provider.
doc
Generate comprehensive documentation for the repository. Parameters:
--from-github(string): Remote GitHub repo.--provider(string): AI provider.--model(string): Model to use.
youtube
Analyze YouTube videos (summarize, transcript, plan, review). Parameters:
url(string): YouTube video URL.question(string, optional): Specific question.--type(summary|transcript|plan|review|custom): Type of analysis.
github pr
Get information about GitHub pull requests. Parameters:
number(int, optional): PR number. If omitted, fetches recent PRs.--from-github(string): Remote GitHub repo.
github issue
Get information about GitHub issues. Parameters:
number(int, optional): Issue number. If omitted, fetches recent issues.--from-github(string): Remote GitHub repo.
clickup task
Get detailed information about a ClickUp task. Parameters:
task_id(string): ClickUp task ID.
mcp search
Search the MCP marketplace for available servers. Parameters:
query(string): Search query.
mcp run
Run a tool on a connected MCP server. Parameters:
query(string): Natural language command specifying the tool and arguments.--provider(string): AI provider.
browser act
Automate browser actions (click, type, etc.). Parameters:
instruction(string): Natural language instructions.--url(string): URL or 'current'/'reload-current'.--video(string): Directory to save video recording.--screenshot(string): Path to save screenshot.
browser observe
Observe interactive elements on a webpage. Parameters:
instruction(string): What to observe.--url(string): URL or 'current'/'reload-current'.
browser extract
Extract data from a webpage. Parameters:
instruction(string): What to extract.--url(string): URL or 'current'/'reload-current'.
xcode build
Build an Xcode project. Parameters:
--buildPath(string): Custom build directory.--destination(string): Simulator destination.
xcode run
Build and run an Xcode project on a simulator. Parameters:
--destination(string): Simulator destination.
xcode lint
Run static analysis on an Xcode project. No parameters.
set_working_directory
Change the working directory for subsequent commands. Parameters:
directoryPath(string): Absolute path to the new working directory.
Contributing
Contributions welcome! Please open issues or pull requests.
License
MIT License.
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 mcp_vibe_tools-3.0.2.tar.gz.
File metadata
- Download URL: mcp_vibe_tools-3.0.2.tar.gz
- Upload date:
- Size: 10.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
692a6f54742621281d2d196f03cc3f1ff257578810f995964db4bb799cbe304c
|
|
| MD5 |
e37d6665cf11ef928f52d7612eb81d12
|
|
| BLAKE2b-256 |
e42c82a7ed8ca4379b055c6802c6612f14fc49b52d522b84b9cca52dde4b4fd3
|
File details
Details for the file mcp_vibe_tools-3.0.2-py3-none-any.whl.
File metadata
- Download URL: mcp_vibe_tools-3.0.2-py3-none-any.whl
- Upload date:
- Size: 9.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d566c9eaa6a1823a0593d6c3bd2fa0b9f617c3a87d3fa83fbff0664d39da9379
|
|
| MD5 |
fc4fc3ce02ba577a82cba5f4ca4066e4
|
|
| BLAKE2b-256 |
c68f192738dc720c026498fcd8ac794d6b1743801d7b9ba022c89b534b0c25d8
|