mcp-project-context-server
Integrates with VS Code Copilot to provide access to project context such as documentation and architecture decisions.
Supports JetBrains IDEs through the Continue extension, giving the assistant access to project context.
Uses Ollama as the embedding model provider for semantic search over project documentation.
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., "@mcp-project-context-serverfind documentation about authentication flow"
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.
MCP Project Context Server
๐ About the Server
MCP Project Context Server provides a robust, production-ready Model Context Protocol (MCP) server implementation designed to give Large Language Models (LLMs) persistent, searchable access to your project's contextual information.
Core Capabilities
๐ Semantic Search Engine: Query your project documentation using natural language
๐ Persistent Knowledge Base: Store and retrieve information from
.context/directory structure๐๏ธ Modular Architecture: Clean 4-layer design following SOLID principles
๐ฏ ADR Integration: Full support for Architecture Decision Records with lifecycle management
๐ Session Tracking: Record and retrieve session notes for future reference
๐พ Vector Store Backend: ChromaDB for fast, persistent, embedded vector storage
๐ Easy Reindexing: Rebuild your knowledge base with a single command
Key Features
โ Model-Agnostic: Works with any LLM model via Ollama (Other providers coming)
โ Configuration-Free: Environment variable-based setup, no hardcoded paths
โ Cross-Platform: POSIX path normalization ensures consistency across OS
โ Async-First: All operations use async/await for performance and scalability
โ Error-Resilient: Graceful error handling with informative messaging
Related MCP server: kontexta
๐ Getting Started
Prerequisites
Before installing, ensure you have:
Python 3.11+ installed
Ollama running with an embedding model (e.g.,
nomic-embed-text)At least 2GB RAM available
4.5GB disk space for ChromaDB (minimum)
Installation
Option 1: PyPI (Recommended)
pip install mcp-project-context-serverOption 2: From Source
git clone https://github.com/your-org/mcp-project-context-server.git
cd mcp-project-context-server
pip install -e ".[dev]" # Install with development dependenciesConfiguration
Set the following environment variables:
# Ollama Configuration (Required)
export OLLAMA_HOST="http://localhost:11434"
export EMBED_MODEL="nomic-embed-text"
# ChromaDB Configuration (Optional)
export CHROMA_DIR="$HOME/.mcp-data/chroma"
# Runtime Configuration
export EMBED_CONCURRENCY="4" # Max concurrent embeddings
export PROJECT_PATH="/path/to/project" # Optional, defaults to CWD๐ฅ๏ธ Client Setup
Universal MCP Client Integration
The server follows the standard MCP protocol, making it compatible with any MCP client that supports stdio transport.
Supported MCP Clients
Client | Status | Setup Instructions |
Claude Desktop | โ Tested | |
Claude Code | โ Tested | |
Cursor | โ Tested | See Cursor Setup |
Continue | โ Tested | See Continue Setup |
Windsurf | โ Compatible | See Windsurf Setup |
VS Code Copilot | โ Compatible |
Claude Desktop Setup
Install the server (see Installation)
Locate the config file for your OS:
OS
Config File Location
Windows
%APPDATA%\Claude\claude_desktop_config.jsonmacOS
~/Library/Application Support/Claude/claude_desktop_config.jsonLinux
~/.config/Claude/claude_desktop_config.jsonConfigure MCP settings in
claude_desktop_config.json:Windows:
{ "mcpServers": { "project-context": { "command": "python", "args": ["-m", "mcp_project_context_server"], "env": { "OLLAMA_HOST": "http://localhost:11434", "EMBED_MODEL": "nomic-embed-text", "CHROMA_DIR": "%USERPROFILE%\\.mcp-data\\chroma" } } } }macOS / Linux:
{ "mcpServers": { "project-context": { "command": "python", "args": ["-m", "mcp_project_context_server"], "env": { "OLLAMA_HOST": "http://localhost:11434", "EMBED_MODEL": "nomic-embed-text", "CHROMA_DIR": "~/.mcp-data/chroma" } } } }Verify the server is connected:
claude mcp listUse in Claude Code by referencing the tools directly in your session, or asking questions about your project context.
Try asking: "What was the decision in ADR-00001?"
Verify semantic search works with project-specific queries
Claude Code Setup
Install the server (see Installation)
Add the MCP server using one of two methods:
Option A โ CLI (Recommended):
claude mcp add project-context python -- -m mcp_project_context_serverTo include environment variables:
claude mcp add project-context \ -e OLLAMA_HOST=http://localhost:11434 \ -e EMBED_MODEL=nomic-embed-text \ -e CHROMA_DIR=~/.mcp-data/chroma \ -- python -m mcp_project_context_serverOption B โ Config file:
Claude Code supports both user-level and project-level configuration:
Scope
Location
User (global)
~/.claude.jsonProject
.claude/settings.json(in project root)Add the following to the
mcpServerskey:{ "mcpServers": { "project-context": { "command": "python", "args": ["-m", "mcp_project_context_server"], "env": { "OLLAMA_HOST": "http://localhost:11434", "EMBED_MODEL": "nomic-embed-text", "CHROMA_DIR": "~/.mcp-data/chroma" } } } }Verify the server is connected:
Use in Claude Code by referencing the tools directly in your session, or asking questions about your project context.
Cursor Setup
Install the MCP server (see Installation)
Choose a config scope โ Cursor supports both global and project-level MCP configuration:
Scope
Windows
macOS / Linux
Global
%USERPROFILE%\.cursor\mcp.json~/.cursor/mcp.jsonProject
.cursor\mcp.json(in project root).cursor/mcp.json(in project root)Configure in
mcp.json:{ "mcpServers": { "project-context": { "command": "python", "args": [ "-m", "mcp_project_context_server" ], "env": { "OLLAMA_HOST": "http://localhost:11434", "EMBED_MODEL": "nomic-embed-text", "CHROMA_DIR": "~/.mcp-data/chroma" } } } }Test functionality:
Use
@project-contextin chatAsk context-aware questions about your project
Access ADRs and documentation via natural language
Continue Setup
Install the Continue VS Code or JetBrains extension
Locate the config file for your OS:
OS
Config File Location
Windows
%USERPROFILE%\.continue\config.yamlmacOS / Linux
~/.continue/config.yamlContinue also supports
config.jsonfor legacy setups, butconfig.yamlis the current default.Add to
config.yaml:mcpServers: - name: project-context command: python args: - "-m" - mcp_project_context_server env: OLLAMA_HOST: "http://localhost:11434" EMBED_MODEL: "nomic-embed-text" CHROMA_DIR: "~/.mcp-data/chroma"Or if using
config.json:{ "mcpServers": [ { "name": "project-context", "command": "python", "args": ["-m", "mcp_project_context_server"], "env": { "OLLAMA_HOST": "http://localhost:11434", "EMBED_MODEL": "nomic-embed-text", "CHROMA_DIR": "~/.mcp-data/chroma" } } ] }Usage:
Trigger context queries in the chat panel
Access project documentation mid-conversation
Maintain context across multi-turn conversations
Windsurf Setup
Install MCP server via terminal or package manager
Locate the MCP config file for your OS:
OS
Config File Location
Windows
%USERPROFILE%\.codeium\windsurf\mcp_config.jsonmacOS / Linux
~/.codeium/windsurf/mcp_config.jsonConfigure in
mcp_config.json(create if not exists):{ "mcpServers": { "project-context": { "command": "python", "args": ["-m", "mcp_project_context_server"], "env": { "OLLAMA_HOST": "http://localhost:11434", "EMBED_MODEL": "nomic-embed-text", "CHROMA_DIR": "~/.mcp-data/chroma" } } } }Restart Windsurf and verify the MCP server appears under
Settings โ MCP Servers.
VS Code Copilot Setup
MCP support is built into VS Code via GitHub Copilot (no separate extension required). Requires VS Code 1.99+ with the Copilot extension.
Install the server (see Installation)
Choose a config scope:
Option A โ Workspace (
.vscode/mcp.json):Create
.vscode/mcp.jsonin your project root (works identically on all OSes):{ "servers": { "project-context": { "type": "stdio", "command": "python", "args": ["-m", "mcp_project_context_server"], "env": { "OLLAMA_HOST": "http://localhost:11434", "EMBED_MODEL": "nomic-embed-text", "CHROMA_DIR": "${env:USERPROFILE}/.mcp-data/chroma" } } } }Note: Use
${env:USERPROFILE}/.mcp-data/chromaon Windows or~/.mcp-data/chromaon macOS/Linux forCHROMA_DIR.Option B โ User settings (
settings.json):Open VS Code settings (
Ctrl + ,/Cmd + ,) and add tosettings.json:{ "mcp": { "servers": { "project-context": { "type": "stdio", "command": "python", "args": ["-m", "mcp_project_context_server"], "env": { "OLLAMA_HOST": "http://localhost:11434", "EMBED_MODEL": "nomic-embed-text", "CHROMA_DIR": "~/.mcp-data/chroma" } } } } }Use in Copilot Chat by switching to Agent mode and the MCP tools will be available automatically.
IDE-Specific Best Practices
PyCharm
While PyCharm doesn't natively support MCP, you can:
Use the CLI mode:
Windows (PowerShell):
project-context-server search "your query"macOS / Linux:
project-context-server search "your query"Or use the Python interpreter:
from mcp_project_context_server.server import run run() # Start server, then connect via MCP client
Vim/Neovim (with mcp.nvim)
-- In your Neovim config (works on Windows, macOS, and Linux)
require('mcp').connect({
name = 'project-context',
command = 'python',
args = {'-m', 'mcp_project_context_server'},
env = {
OLLAMA_HOST = 'http://localhost:11434'
}
})Sublime Text (with Sublime MCP)
Similar to VS Code, configure in Sublime's MCP settings file with the same JSON structure.
๐ ๏ธ Usage Examples
Semantic Search
Ask natural language questions about your project:
# Example: Ask about your project's architecture
# Expected: Retrieves relevant ADRs and documentation
search_project_context(
query="How do we handle data persistence?",
n_results=5
)Load Full Context
Get all documentation at once:
load_project_context()
# Returns concatenated content of:
# - project.md
# - All ADRs
# - Latest session fileSave Session Notes
save_session_summary(
summary="Investigated chunking strategy alternatives, decided on fixed-size for now"
)
# Creates: .context/sessions/YYYY-MM-DD.mdRebuild Index
index_project_context()
# Drops existing collection and rebuilds from .context/๐ Project Structure
mcp-project-context-server/
โโโ src/mcp_project_context_server/
โ โโโ __init__.py
โ โโโ __main__.py
โ โโโ server.py # MCP server entry point
โ โโโ tools/
โ โ โโโ load_context.py # load_project_context tool
โ โ โโโ search_context.py # search_project_context tool
โ โ โโโ save_session.py # save_session_summary tool
โ โ โโโ index_context.py # index_project_context tool
โ โโโ integrations/
โ โ โโโ chroma/
โ โ โ โโโ client.py # ChromaDB client
โ โ โโโ ollama/
โ โ โโโ client.py # Ollama client
โ โโโ indexing/
โ โ โโโ chroma/
โ โ โ โโโ indexer.py # Chunking & embedding pipeline
โ โ โโโ ollama/
โ โ โโโ embedder.py # Embedding wrappers
โ โโโ helpers/
โ โโโ context.py # Utility functions
โโโ .context/ # Project context directory
โ โโโ project.md # Project overview
โ โโโ sessions/ # Session notes
โ โโโ decisions/ # ADRs
โโโ scripts/
โ โโโ test_client.py # Integration smoke test
โโโ README.md
โโโ pyproject.toml
โโโ LICENSE๐งช Testing
Manual Integration Test
python scripts/test_client.pyDevelopment Workflow
# Install
# Install testing dependencies
python -m pip install testsuite
# Run pytest
pytest tests/
# Test coverage
pytest --cov=src/mcp_project_context_server
# Lint and format
ruff check src/
black src/๐ Environment Variables Reference
Variable | Default | Description |
|
| Ollama server URL |
|
| Embedding model name |
|
| ChromaDB persistence directory |
|
| Max concurrent embedding requests |
| CWD | Path to project root (optional) |
|
| Prefix for tool names |
๐ฎ Roadmap & Contributions
Planned Features
Auto-reindex: Watchdog-based file monitoring for automatic reindexing
Codebase Indexing: Repomix integration for source code analysis
Enhanced ADR Tools: First-class MCP tools for ADR lifecycle
Repository Bootstrapping: Automatic
.context/generationBatch Operations: Bulk ADR updates and session imports
Community Contributions
Contributions are welcome! See CONTRIBUTING.md for detailed contribution guidelines.
Fork the repository
Create a feature branch
Commit your changes
Push to the branch
Open a Pull Request
๐ License
This project is licensed under the GNU AFFERO GENERAL PUBLIC LICENSE Version 3 - see the LICENSE file for details.
๐ Acknowledgments
MCP Team: For the Model Context Protocol
ChromaDB: For the vector store implementation
Ollama: For the embedding model hosting
Built with โค๏ธ for better LLM project understanding
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/DarkMatterProductions/mcp-project-context-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server