Skip to main content
Glama
jankowtf

MCP Server Template for Cursor IDE

by jankowtf
README.md
# MCP Server Template for Cursor IDE

A simple template for creating custom tools for Cursor IDE using Model Context Protocol (MCP). Create your own repository from this template, modify the tools, and connect them to your Cursor IDE.

![Server Mood Response](docs/images/server-mood.png)

## Quick Start

1. Click "Deploy to Heroku" button

    [![Deploy to Heroku](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/kirill-markin/weaviate-mcp-server)

2. After deployment, configure Cursor:
   - Open Cursor Settings → Features
   - Add new MCP server
   - Use your Heroku URL with `/sse` path (e.g., `https://<your-app-name>.herokuapp.com/sse`)

3. Test your agent's mood in Cursor:
   - Ask your agent "Please ask about our server mood and let me know how it is."
   - The server will respond with a cheerful message and a heart ❤️

## Alternative Setup Methods

You can run the server in three ways: using Docker, traditional Python setup, or directly in Cursor IDE.

### Docker Setup

The project includes Docker support for easy deployment:

1. Initial setup:
```bash
# Clone the repository
git clone https://github.com/kirill-markin/weaviate-mcp-server.git
cd weaviate-mcp-server

# Create environment file
cp .env.example .env
```

2. Build and run using Docker Compose:
```bash
# Build and start the server
docker compose up --build -d

# View logs
docker compose logs -f

# Check server status
docker compose ps

# Stop the server
docker compose down
```

3. The server will be available at:
   - SSE endpoint: http://localhost:8000/sse

4. Quick test:
```bash
# Test the server endpoint
curl -i http://localhost:8000/sse
```

5. Connect to Cursor IDE:
   - Open Cursor Settings → Features
   - Add new MCP server
   - Type: Select "sse"
   - URL: Enter `http://localhost:8000/sse`

### Traditional Setup

First, install the uv package manager:

```bash
# Install uv on macOS
brew install uv
# Or install via pip (any OS)
pip install uv
```

Start the server using either stdio (default) or SSE transport:

```bash
# Install the package with development dependencies
uv pip install -e ".[dev]"

# Using stdio transport (default)
uv run mcp-hitchcode

# Using SSE transport on custom port
uv run mcp-hitchcode --transport sse --port 8000

# Run tests
uv run pytest -v
```

After installation, you can connect the server directly to Cursor IDE:

1. Right-click on the `cursor-run-mcp-server.sh` file in Cursor
2. Select "Copy Path" to copy the absolute path
3. Open Cursor Settings (gear icon)
4. Navigate to Features tab
5. Scroll down to "MCP Servers"
6. Click "Add new MCP server"
7. Fill in the form:
   - Name: Choose any name (e.g., "my-mcp-server-1")
   - Type: Select "stdio" (not "sse" because we run the server locally)
   - Command: Paste the absolute path to `cursor-run-mcp-server.sh` that you copied earlier. For example: `/Users/kirillmarkin/weaviate-mcp-server/cursor-run-mcp-server.sh`

### Environment Variables

Available environment variables (can be set in `.env`):

- `MCP_SERVER_PORT` (default: 8000) - Port to run the server on
- `MCP_SERVER_HOST` (default: 0.0.0.0) - Host to bind the server to
- `DEBUG` (default: false) - Enable debug mode
- `MCP_USER_AGENT` - Custom User-Agent for website fetching

## Additional options

### Installing via Smithery

[![smithery badge](https://smithery.ai/badge/@kirill-markin/example-mcp-server)](https://smithery.ai/server/@kirill-markin/example-mcp-server)

To install MCP Server Template for Cursor IDE for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@kirill-markin/example-mcp-server):

```bash
npx -y @smithery/cli install @kirill-markin/example-mcp-server --client claude
```

### Glama server review

<a href="https://glama.ai/mcp/servers/jgisqn8zco"><img width="380" height="200" src="https://glama.ai/mcp/servers/jgisqn8zco/badge" alt="Server Template for Cursor IDE MCP server" /></a>

TDQS

C2.8/5.0

Scored across 12 tools

Disambiguation2/5

The tool set has significant ambiguity, particularly between the 'apply_prompt_*' tools which all provide prompt templates for different contexts but could easily be confused by an agent due to overlapping purposes (e.g., 'apply_prompt_fix' vs 'apply_prompt_fix_linter' for fixing issues). Additionally, 'fetch_railway_docs' and 'fetch_railway_docs_optimized' appear to do the same thing with unclear distinctions, leading to potential misselection.

Naming Consistency4/5

Most tools follow a consistent snake_case pattern with clear verb_noun structures (e.g., 'apply_prompt_change', 'fetch_railway_docs'), which aids readability. However, there are minor deviations: 'mood' breaks the pattern by being a single noun without a verb, and the duplication in 'fetch_railway_docs' vs 'fetch_railway_docs_optimized' introduces inconsistency in naming for similar functions.

Tool Count3/5

With 12 tools, the count is borderline but reasonable for a template server aimed at Cursor IDE, which might cover various development tasks. However, the set feels slightly heavy due to redundant tools like the two Railway docs fetchers and multiple similar prompt tools, suggesting some consolidation could improve coherence without losing functionality.

Completeness2/5

The server's domain appears to be development assistance with prompt templates and documentation fetching, but there are significant gaps. For example, it lacks tools for code generation, debugging, or version control integration, which are common in IDE contexts. The inclusion of a trivial 'mood' tool further detracts from covering essential workflows, making the surface incomplete for practical agent use in development tasks.

Maintenance

ActivityInactive
ResponsivenessNo issues