DevContext
Provides developers with continuous, project-centric context awareness. Requires a TursoDB database.
DevContext: Autonomous Context Awareness Model-Context-Protocol (MCP) Server
Empower your development workflow with intelligent context awareness - DevContext understands your codebase, conversations, and development patterns to provide relevant context exactly when you need it.
Introduction
DevContext is a cutting-edge Model Context Protocol (MCP) server designed to provide developers with continuous, project-centric context awareness. Unlike traditional context systems, DevContext continuously learns from and adapts to your development patterns. DevContext leverages sophisticated retrieval methods, focusing on keyword analysis, relationship graphs, and structured metadata to deliver highly relevant context during development, understanding both your conversations and your codebase at a deeper level.
The server operates with a database instance dedicated to a single project, eliminating cross-project complexity and ensuring performance with minimal resource requirements. DevContext builds a comprehensive understanding of your codebase - from repository structure down to individual functions - while continuously learning from and adapting to your development patterns.
The BEST way to use this MCP server is to follow the guide below on implementing the provided Cursor Rules system which in turn gives you:
- Completely autonomous context management
- Autonomous external documentation context and use
- Complete task management workflow integration
Core Technologies
- Node.js: Runtime environment (Node.js 18+)
- TursoDB: SQL database optimized for edge deployment (compatible with SQLite)
- Model Context Protocol SDK: For standardized communication with IDE clients
- Cursor Rules: Autonomous development environment and workflow management
- JavaScript/TypeScript: Pure JavaScript implementation with no external ML dependencies
Installation Guide
Prerequisites
- Node.js 18.0.0 or higher
- Cursor IDE with MCP support
- TursoDB account (for database)
Step 1: Set up TursoDB Database
-
Sign up for TursoDB:
- Visit Turso and create an account
- The free tier is sufficient for most projects
-
Install Turso CLI (optional but recommended):
curl -sSfL https://get.turso.tech/install.sh | bash -
Authenticate with Turso:
turso auth login -
Create a project database:
turso db create devcontext -
Get database credentials:
# Get database URL turso db show devcontext --url # Create auth token turso db tokens create devcontextSave both the URL and token for the next step.
Step 2: Configure MCP in Cursor (can be applied to other IDE's as well)
Create or edit .cursor/mcp.json in your project directory:
{
"mcpServers": {
"devcontext": {
"command": "npx",
"args": ["-y", "devcontext@latest"],
"enabled": true,
"env": {
"TURSO_DATABASE_URL": "your-turso-database-url",
"TURSO_AUTH_TOKEN": "your-turso-auth-token"
}
}
}
}
Replace your-turso-database-url and your-turso-auth-token with the values obtained in Step 1.
Cursor Rules Implementation
DevContext implements a sophisticated set of Cursor Rules that create an autonomous development environment. These rules guide Cursor's AI assistants in maintaining project scope alignment, incorporating up-to-date documentation, and implementing advanced task workflows.
Be on the lookout for the DevContext Project Generator which is coming very soon and will create a COMPLETE set up for your project to literally 10x your development workflow.
Key Rule Components
1. DevContext MCP Tools Usage Guide
The core rule defines a precise sequence for tool execution:
1. FIRST: Call initialize_conversation_context EXACTLY ONCE at START
2. AS NEEDED: Call update_conversation_context for code changes/new messages
3. AS NEEDED: Call retrieve_relevant_context when specific context is required
4. OCCASIONALLY: Call record_milestone_context for significant achievements
5. LAST: Call finalize_conversation_context EXACTLY ONCE at END
This workflow ensures comprehensive context management throughout the entire development session.
2. External Library Documentation Requirements
All external library usage must be preceded by proper documentation retrieval:
- Two-Step Documentation Retrieval using Context7
- Web Search Fallback for documentation not available through Context7
- Multi-Source Documentation Synthesis for comprehensive understanding
This prevents common issues with incorrect API usage, incompatible versions, or missing dependencies.
3. Task Workflow System
The task workflow system enables:
- Structured task management in
tasks.md - Task ID-based implementation order
- Status tracking with completion metadata
- Project blueprint integration for architectural context
Setting Up Cursor Rules
-
Create Rules Directory:
mkdir -p .cursor/rules -
Download/Copy and Paste Rules:
Download or copy and paste the .cursor/rules directory into your project. Next, copy and paste the contents of the .cursorrules file in your project root and paste it into your cursor settings rules (Cursor Settings -> Rules -> User Rules). You should also copy and paste the .cursorrules file into your main directory as well.
- Customize Task Workflow (Optional): Once the cursor rules are implemented, restart Cursor and proceed to ask it to create tasks for you based on whatever project idea you may have.
Configuration Example
Below is a complete example of an mcp.json file that configures both DevContext and Context7 MCP servers:
{
"mcpServers": {
"devcontext": {
"command": "npx",
"args": ["-y", "devcontext@latest"],
"enabled": true,
"env": {
"TURSO_DATABASE_URL": "libsql://your-project-db-name.turso.io",
"TURSO_AUTH_TOKEN": "your_turso_auth_token_here"
}
},
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp@latest"]
}
}
}
Important Parameters
| Parameter | Description | Default Value |
|---|---|---|
TURSO_DATABASE_URL | URL of your TursoDB instance | None (Required) |
TURSO_AUTH_TOKEN | Authentication token for TursoDB | None (Required) |
Table of Contents
- System Overview
- Core Components
- MCP Tools
- Data Architecture
- Technical Specifications
- Performance Considerations
- Security
- Troubleshooting
- License
System Overview
DevContext is a state-of-the-art context management system for software development, implementing the Model Context Protocol (MCP) with advanced context retrieval techniques.
The system operates as a Node.js application with a modular JavaScript codebase, bundled into a single .js file using esbuild. It leverages TursoDB (or similar SQL database) as the persistent store for all context, metadata, and optional logs for a specific project.
Key Differentiators:
- Non-Vector Retrieval: Context retrieval uses sophisticated keyword analysis, relationship graphs, and structured metadata instead of vector embeddings
- Project-Centric Design: Each server instance is dedicated to a single project, simplifying data management
- Minimal Dependencies: Restricted to core essentials - MCP SDK, TursoDB client, and lightweight AST parsing
- Hierarchical Understanding: Context is understood from repository structure down to function/variable levels
- Intelligent Context Prioritization: Multi-factor relevance scoring based on recency, importance, relationships, and developer focus
Core Components
Text Processing
- Language-aware tokenization with specialized handling for JavaScript/TypeScript, Python, Java, C#, Ruby, and Go
- Keyword extraction with language-specific weighting
- Semantic boundary respecting n-grams
- Language-specific idiom detection
Context Management
- Code entity indexing and relationship tracking
- Conversation topic segmentation and purpose detection
- Timeline event recording and milestone snapshots
- Focus area prediction based on developer activity
Pattern Recognition
- Code pattern identification and storage
- Automatic pattern learning from examples
- Cross-session pattern promotion
- Design pattern detection
Intent & Relevance Analysis
- Query intent prediction
- Multi-factor context prioritization
- Token budget management
- Context integration across topic shifts
MCP Tools
DevContext implements the following MCP tools that can be invoked by Cursor IDE:
initialize_conversation_context
Initializes a new conversation session with comprehensive project context.
When to use: At the beginning of every conversation, exactly once.
Key parameters:
initialQuery: The user's first message or questioncontextDepth: Minimal, standard, or comprehensive context depthincludeArchitecture: Whether to include architectural contextfocusHint: Optional focus on specific code entity
Returns: Conversation ID and initial context summary
update_conversation_context
Updates the active context with new messages and code changes.
When to use: After code changes or new messages are exchanged.
Key parameters:
conversationId: ID from initialize_conversation_contextnewMessages: New messages exchanged since last updatecodeChanges: Code files created or modifiedpreserveContextOnTopicShift: Whether to maintain context during topic changes
Returns: Updated focus and context continuity information
retrieve_relevant_context
Retrieves context snippets relevant to a specific query.
When to use: When specific project context is needed.
Key parameters:
conversationId: ID from initialize_conversation_contextquery: Specific question about the projectconstraints: Optional filters for entity types, file paths, etc.weightingStrategy: How to prioritize results
Returns: Relevant context snippets with explanations
record_milestone_context
Records significant development milestones for future reference.
When to use: After completing important features, fixing critical bugs, or making architectural decisions.
Key parameters:
conversationId: ID from initialize_conversation_contextname: Short, descriptive milestone namedescription: Detailed explanationmilestoneCategory: Category (feature, bug fix, refactoring, etc.)assessImpact: Whether to analyze impact
Returns: Milestone ID and impact assessment
finalize_conversation_context
Concludes a conversation, extracting learnings and suggesting next steps.
When to use: At the end of every conversation, exactly once.
Key parameters:
conversationId: ID from initialize_conversation_contextextractLearnings: Whether to identify and extract learningspromotePatterns: Whether to promote patterns to global repositorygenerateNextSteps: Whether to suggest follow-up actions
Returns: Conversation summary, extracted learnings, and next steps
Data Architecture
DevContext uses a SQL database (TursoDB) with the following core tables:
- code_entities: Stores indexed code from files, functions, classes, etc.
- entity_keywords: Maps keywords to code entities for search
- code_relationships: Tracks relationships between code entities
- conversation_history: Stores conversation messages
- conversation_topics: Segments conversations into coherent topics
- timeline_events: Records significant development events
- project_patterns: Stores identified code patterns
- focus_areas: Tracks developer attention and intention
The database schema is automatically created and maintained by the server.
Technical Specifications
- Node.js: Version 18.0.0 or higher required
- Database: TursoDB (or compatible SQLite)
- Bundling: ESBuild for single-file deployment
- Protocol: Model Context Protocol via @modelcontextprotocol/sdk
- Parsing: Lightweight JavaScript AST parsing (acorn)
- Operating Systems: Cross-platform (Windows, macOS, Linux)
Performance Considerations
DevContext is optimized for performance with:
- Efficient SQL queries with proper indexing
- In-memory caching for frequently accessed data
- Incremental updates to minimize processing
- Asynchronous operations for non-blocking execution
- Adaptive context retrieval based on token budget
- Scheduled background tasks during idle periods
For large codebases (>100,000 LOC), initial indexing may take several minutes, but subsequent operations remain fast and responsive.
Security
- Isolated Database: Each project uses a dedicated database instance
- Secure Credentials: TursoDB credentials managed via environment variables
- Input Validation: All inputs validated with Zod schemas
- Parameterized Queries: SQL injection protection
- No External APIs: All processing happens locally
Troubleshooting
Common issues and solutions:
- Connection Errors: Verify TursoDB credentials and database URL
- Slow Initial Startup: Normal for large codebases; subsequent startups are faster
- Missing Context: Check token budget; increase if necessary
- Tool Errors: Ensure proper conversation ID is being passed between tools
- Performance Issues: Consider reducing scope of indexed files or increasing cache size
License
This project is licensed under the MIT License - see the LICENSE file for details.
DevContext: Continuous Context for Continuous Progress
Server Terkait
Alpha Vantage MCP Server
sponsorAccess financial market data: realtime & historical stock, ETF, options, forex, crypto, commodities, fundamentals, technical indicators, & more
ts-morph Refactoring Tools
Refactor TypeScript and JavaScript codebases using ts-morph. Supports renaming symbols and files, moving symbols, and searching for references.
Riza
Arbitrary code execution and tool-use platform for LLMs by Riza
Facets Module
Create and manage Terraform modules for cloud-native infrastructure using the Facets.cloud FTF CLI.
Abstract MCP Server
Caches large tool responses to files and returns compact resource links to save LLM context window space.
BCMS MCP
Give me a one - two sentence description of the BCMS MCP # MCP The BCMS Model Context Protocol (MCP) integration enables AI assistants like Claude, Cursor, and other MCP-compatible tools to interact directly with your BCMS content. This allows you to create, read, and update content entries, manage media files, and explore your content structure—all through natural language conversations with AI. ## What is MCP? The [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) is an open standard developed by Anthropic that allows AI applications to securely connect to external data sources and tools. With BCMS MCP support, you can leverage AI assistants to: - Query and explore your content structure - Create new content entries with AI-generated content - Update existing entries - Manage your media library - Get intelligent suggestions based on your content model --- ## Getting Started ### Prerequisites 1. A BCMS account with an active instance 2. An MCP key with appropriate permissions 3. An MCP-compatible client (Claude Desktop, Cursor, or any MCP client) ### Step 1: Create an MCP Key 1. Navigate to your BCMS dashboard 2. Go to Settings → MCP 3. Click Create MCP Key 4. Configure the permissions for templates you want the AI to access:GET: Read entries 5. POST: Create entries 6. PUT: Update entries 7. DELETE: Delete entries Note: Right now, MCP only supports creating, reading and updating content. ### Step 2: Configure Your MCP Client You can find full instructions for integrating BCMS with your AI tools right inside BCMS, on the MCP page. But in general, installing BCMS MCP works in a standard way: ``` { "mcpServers": { "bcms": { "url": "https://app.thebcms.com/api/v3/mcp?mcpKey=YOUR_MCP_KEY" } } } ``` ## Available Tools Once connected, your AI assistant will have access to the following tools based on your MCP key permissions: ### Content Discovery #### list_templates_and_entries Lists all templates and their entries that you have access to. This is typically the first tool to call when exploring your BCMS content. Returns: - Template IDs, names, and slugs - Entry IDs with titles and slugs for each language Example prompt: "Show me all the templates and entries in my BCMS" --- ### Entry Management #### list_entries_for_{templateId} Retrieves all entries for a specific template with full content data. A separate tool is generated for each template you have access to. Returns: - Complete entry data including all meta fields - Content in all configured languages - Entry statuses Example prompt: "List all blog posts from my Blog template" --- #### create_entry_for_{templateId} Creates a new entry for a specific template. The input schema is dynamically generated based on your template's field structure. Input: - statuses: Array of status assignments per language - meta: Array of metadata for each language (title, slug, custom fields) - content: Array of content nodes for each language Example prompt: "Create a new blog post titled 'Getting Started with BCMS' with a brief introduction paragraph" --- #### update_entry_for_{templateId} Updates an existing entry for a specific language. Input: - entryId: The ID of the entry to update - lng: Language code (e.g., "en") - status: Optional status ID - meta: Updated metadata - content: Updated content nodes Example prompt: "Update the introduction paragraph of my 'Getting Started' blog post" --- ### Media Management #### list_all_media Lists all media files in your media library. Returns: - Media IDs, names, and types - File metadata (size, dimensions for images) - Parent directory information Example prompt: "Show me all images in my media library" --- #### list_media_dirs Lists the directory structure of your media library. Returns: - Hierarchical directory structure - Directory IDs and names Example prompt: "Show me the folder structure of my media library" --- #### create-media-directory Creates a new directory in your media library. Input: - name: Name of the directory - parentId: Optional parent directory ID (root if not specified) Example prompt: "Create a new folder called 'Blog Images' in my media library" --- #### request-upload-media-url Returns a URL you use to upload a file (for example via POST with multipart form data), which avoids pushing large binaries through the MCP tool payload. You still need a valid file name and MIME type when uploading, as described in the tool response. Availability: Only when the MCP key has Can mutate media enabled. Example prompt: “Give me an upload URL for a new hero image, then tell me how to upload it.” Input: - fileName: Name of the file with extension - fileData: Base64-encoded file data (with data URI prefix) - parentId: Optional parent directory ID Example prompt: "Upload this image to my Blog Images folder" --- ### Linking Tools #### get_entry_pointer_link Generates an internal BCMS link to an entry for use in content. Input: - entryId: The ID of the entry to link to Returns: - Internal link format: entry:{entryId}@*_{templateId}:entry Example prompt: "Get me the internal link for the 'About Us' page entry" --- #### get_media_pointer_link Generates an internal BCMS link to a media item for use in content. Input: - mediaId: The ID of the media item Returns: - Internal link format: media:{mediaId}@*_@*_:entry Example prompt: "Get the link for the hero image so I can use it in my blog post" --- ## Content Structure ### Entry Content Nodes When creating or updating entries, content is structured as an array of nodes. Supported node types include: Type Description paragraph Standard text paragraph heading Heading (h1-h6) bulletList Unordered list orderedList Numbered list listItem List item codeBlock Code block with syntax highlighting blockquote Quote block image Image node widget Custom widget with props ### Example Content Structure ``` { "content": [ { "lng": "en", "nodes": [ { "type": "heading", "attrs": { "level": 1 }, "content": [ { "type": "text", "text": "Welcome to BCMS" } ] }, { "type": "paragraph", "content": [ { "type": "text", "text": "This is your first paragraph." } ] } ] } ] } ``` ## Security & Permissions ### MCP Key Scopes Your MCP key controls what the AI can access: - Template Access: Only templates explicitly granted in the MCP key are visible - Operation Permissions: Each template can have independent GET/POST/PUT/DELETE permissions - Media Access: Media operations are controlled separately ### Best Practices 1. Principle of Least Privilege: Only grant the permissions needed for your use case 2. Separate Keys: Create different MCP keys for different purposes or team members 3. Regular Rotation: Periodically rotate your MCP keys ## Use Cases ### Content Creation Workflows Blog Post Creation "Create a new blog post about the benefits of headless CMS. Include an introduction, three main benefits with explanations, and a conclusion. Use the Blog template." Product Updates "Update the price field for all products in the Electronics category to apply a 10% discount" ### Content Exploration Content Audit "List all blog posts that don't have a featured image set" Translation Status "Show me which entries are missing German translations" ### Media Organization Library Cleanup "Show me all unused images in the media library" Folder Setup "Create folder structure for: Products > Categories > Electronics, Clothing, Home" ## Troubleshooting ### Common Issues #### "MCP key not found" - Verify your MCP key format: keyId.keySecret.instanceId - Ensure the MCP key hasn't been deleted or deactivated - Check that you're using the correct instance #### "MCP key does not have access to template" - Review your MCP key permissions in the dashboard - Ensure the required operation (GET/POST/PUT/DELETE) is enabled for the template #### Session Expired - MCP sessions may timeout after periods of inactivity - Simply start a new conversation to establish a fresh session ### Getting Help - Documentation: [thebcms.com/docs](https://thebcms.com/docs) - Support: [[email protected]](mailto:[email protected]) - Community: [Join BCMS Discord](https://discord.com/invite/SYBY89ccaR) for community support ## Technical Reference ### Endpoint POST https://app.thebcms.com/api/v3/mcp?mcpKey={MCP_KEY} ### Transport BCMS MCP uses the Streamable HTTP transport with session management. Sessions are maintained via the mcp-session-id header. ### Response Format All tools return structured JSON responses conforming to the MCP specification with: - content: Array of content blocks - structuredContent: Typed response data ## Rate Limits MCP requests are subject to the same rate limits as API requests: - Requests are tracked per MCP key - Contact support if you need higher limits for production workloads
Swagger/OpenAPI MCP Server
Explore and interact with Swagger/OpenAPI specifications, allowing for browsing endpoints and retrieving details on API operations.
WordPress Community DEV Docs
Access WordPress development rules and best practices from the WordPress LLM Rules repository. It dynamically creates tools for each rule and caches content using Cloudflare Durable Objects.
MCP Reasoner
A reasoning engine with multiple strategies, including Beam Search and Monte Carlo Tree Search.
Jira Context MCP
MCP server to provide Jira Tickets information to AI coding agents like Cursor.
LAML MCP Server
Loads and validates LAML (YAML-based markup language) documents via the Model Context Protocol.