Skip to main content

MCP server for managing API endpoints and code context for AI coding assistants

Project description

code-context

License: MIT Python 3.10+ PyPI version

MCP (Model Context Protocol) server for managing API endpoints and code context for AI coding assistants.

Problem

When using AI coding assistants like Claude Code, you often need to reference API endpoints while writing code. This requires:

  • Repeatedly searching through codebases
  • High token consumption from context switching
  • Risk of using outdated API information
  • Manual tracking of endpoint specifications

Solution

code-context automatically scans and stores your API endpoints in a vector database, enabling:

  • Instant lookup by endpoint name or route
  • Semantic search by describing what the endpoint does
  • Complete specifications (headers, parameters, responses)
  • Always up-to-date with your codebase

Features

  • 🔍 Automatic scanning of Python FastAPI/Flask projects
  • 💾 Vector storage with Qdrant (embedded mode)
  • 🔧 MCP integration with Claude Code/Desktop
  • 📝 CRUD operations for endpoint management
  • 🚀 Zero-config setup with pipx install
  • 🎯 Extensible architecture for more languages

Installation

Quick Start (Recommended)

# Step 1: Install code-context
pipx install mcp-code-context

# Step 2: Initialize configuration (run once)
code-context init

# Step 3: Install MCP client integration
code-context install-mcp

The install-mcp wizard will guide you through:

  • Selecting your AI coding assistant platform
  • Automatically configuring the MCP integration
  • Testing the connection

Manual Installation (Development)

# Clone repository
git clone https://github.com/jieyefriic/code-context
cd code-context

# Install in development mode
pip install -e .

# Initialize configuration
code-context init

# Install MCP client
code-context install-mcp

MCP Client Installation

code-context works with 12+ AI coding assistants through the Model Context Protocol (MCP):

Supported Platforms: Claude Code • Cursor • Antigravity • Windsurf • Warp • Cline • VS Code Copilot • Copilot CLI • Amp • Gemini CLI • Codex • Factory CLI

Quick Install

code-context install-mcp

This interactive wizard will automatically configure your AI assistant.

Manual Installation

For detailed platform-specific instructions, see INSTALLATION.md

Quick Links:

Usage

1. Initialize (Run Once)

code-context init

This wizard will:

  • Guide you through selecting LLM provider (OpenAI, Gemini, DeepSeek, etc.)
  • Configure API keys securely
  • Set up embedding configuration
  • Create data directory at ~/.code-context/
  • Initialize embedded Qdrant database

Important: This step must be completed before using the MCP server.

2. Scan Your Codebase

In Claude Code, ask:

Scan my project directory for API endpoints

Or manually:

# In Python REPL
from code_context import tools
tools.scan_codebase("/path/to/your/project", language="python")

3. Query Endpoints

In Claude Code, you can now ask:

What's the user login endpoint specification?
Show me all endpoints related to authentication
What parameters does the /api/users/:id endpoint accept?

MCP Tools

The following tools are available to Claude Code:

search_endpoint

Search for endpoints by name or route

{
  "name": "get_user",      // Optional: exact name match
  "route": "/api/users"    // Optional: exact route match
}

add_endpoint

Manually add an endpoint

{
  "name": "create_user",
  "route": "/api/users",
  "method": "POST",
  "file_path": "/path/to/api.py",
  "description": "Create a new user",
  "parameters": {...},
  "response_format": {...}
}

scan_codebase

Scan a directory for endpoints

{
  "directory": "/path/to/project",
  "language": "python"
}

update_endpoint

Update an existing endpoint

{
  "endpoint_id": "uuid-here",
  "updates": {
    "description": "Updated description"
  }
}

delete_endpoint

Delete an endpoint

{
  "endpoint_id": "uuid-here"
}

list_endpoints

List all stored endpoints

{
  "limit": 100
}

Supported Frameworks

Current

  • ✅ Python: FastAPI, Flask

Planned

  • 🔜 Node.js: Express, NestJS
  • 🔜 Go: Gin, Echo, Chi
  • 🔜 Rust: Axum, Actix

Architecture

code-context/
├── src/code_context/
│   ├── server.py           # MCP server core
│   ├── config.py           # Configuration management
│   ├── tools/              # MCP tool implementations
│   ├── scanner/            # Code scanners (extensible)
│   │   ├── python.py       # Python scanner
│   │   └── [future: go.py, rust.py, etc.]
│   └── database/           # Qdrant client wrapper
└── tests/

Configuration

Environment Variables

# Custom data directory
export CODE_CONTEXT_DATA_DIR=~/.my-code-context

# Use remote Qdrant
export CODE_CONTEXT_QDRANT_URL=http://localhost:6333
export CODE_CONTEXT_QDRANT_API_KEY=your-key

# Collection settings
export CODE_CONTEXT_COLLECTION_NAME=my_endpoints
export CODE_CONTEXT_VECTOR_SIZE=1536

View Current Config

code-context info

Development

Setup

# Clone and install with dev dependencies
git clone https://github.com/jieyefriic/code-context
cd code-context
pip install -e ".[dev]"

Run Tests

pytest tests/

Code Formatting

black src/
ruff check src/

Extending

Add a New Language Scanner

Create src/code_context/scanner/golang.py:

from . import BaseScanner
from ..database import Endpoint

class GoScanner(BaseScanner):
    def can_handle(self, file_path):
        return file_path.suffix == ".go"

    def scan_file(self, file_path):
        # Implement Go-specific scanning
        endpoints = []
        # ... parse Go code ...
        return endpoints

Register in scanner/python.py:

def get_scanner(language: str):
    scanners = {
        "python": PythonScanner,
        "go": GoScanner,  # Add here
    }
    # ...

Roadmap

  • Basic MCP server
  • Python FastAPI/Flask scanner
  • Embedded Qdrant storage
  • LLM integration for semantic search
  • Support for more languages (Go, Rust, Node.js)
  • Web UI for endpoint management
  • VS Code extension
  • Automatic re-scanning on file changes
  • Cloud-hosted version for teams

Contributing

Contributions welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Submit a pull request

License

MIT License - see LICENSE file for details

FAQ

Q: Does this work with Claude Desktop?

A: Yes! It works with both Claude Code and Claude Desktop.

Q: Can I use a remote Qdrant server?

A: Yes, set CODE_CONTEXT_QDRANT_URL environment variable.

Q: How do I update endpoints when code changes?

A: Re-run scan_codebase on the directory. Future versions will support auto-refresh.

Q: Can I use this with non-Python projects?

A: Not yet, but Go/Rust/Node.js support is planned. You can manually add endpoints with add_endpoint.

Q: Does this send my code to external services?

A: No. Everything runs locally unless you configure a remote Qdrant server. LLM integration (optional) will use your API keys.

Support


Made with ❤️ for the AI coding community

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_code_context-0.1.0.tar.gz (83.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_code_context-0.1.0-py3-none-any.whl (102.7 kB view details)

Uploaded Python 3

File details

Details for the file mcp_code_context-0.1.0.tar.gz.

File metadata

  • Download URL: mcp_code_context-0.1.0.tar.gz
  • Upload date:
  • Size: 83.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.1

File hashes

Hashes for mcp_code_context-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d6a8cb3bd654bfd54fddeae914b857003cc6d78c223b090b20a26231f45eddd9
MD5 6950031593336711728d77b296d8a143
BLAKE2b-256 b77fa446ae50c890cb6c960b8a613b201d7942de11891ee833ecc808f46ee0cf

See more details on using hashes here.

File details

Details for the file mcp_code_context-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_code_context-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f39b014a6850cbb0bb64b6defeb2ca0270bd3da18077c2610340e47e5368084f
MD5 60840663a84e45ae30c51923216d79f0
BLAKE2b-256 b30a4824979eb0b88c41c69baea604a9ebbb83c78b7f193eaf147de521436616

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page