mcpField
D
DevContext: Autonomous Context Awareness Model-Context-Protocol (MCP) Server

DevContext: Autonomous Context Awareness Model-Context-Protocol (MCP) Server

本地服务
github.com/aurda012记忆与知识4974 周前更新

关于 DevContext: Autonomous Context Awareness Model-Context-Protocol (MCP) Server

DevContext 是一个 MCP 服务,为开发者提供面向项目的上下文感知能力。它通过关键词分析、关系图和结构化元数据进行检索,而非使用向量嵌入,每个服务实例专用于单个项目。项目以 Cursor 规则系统作为推荐的使用方式。

主要功能

  1. 01面向单个项目的专用数据库实例
  2. 02基于关键词与关系图的非向量检索
  3. 03代码实体索引与关系追踪
  4. 04对话上下文的初始化、更新与结束管理
  5. 05里程碑记录与模式提取

适用场景

  1. 01在 Cursor 中为 AI 助手保持项目上下文
  2. 02跨会话记录开发里程碑与决策
  3. 03结合 Context7 获取外部库文档后再编写代码

MCP 相关

该项目是一个 MCP 服务,向 Cursor 等 IDE 客户端暴露 initialize_conversation_context、update_conversation_context、retrieve_relevant_context、record_milestone_context 和 finalize_conversation_context 等工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"devcontext": {
"command": "npx",
"args": [
"-y",
"devcontext"
],
"env": {
"TURSO_DATABASE_URL": "<TURSO_DATABASE_URL>",
"TURSO_AUTH_TOKEN": "<TURSO_AUTH_TOKEN>"
}
}
}
}
启动命令npx -y devcontext
需要配置的环境变量
TURSO_DATABASE_URL
TURSO_AUTH_TOKEN密钥

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmdevcontext

工具

5

收录的工具列表 · 更新于 3 周前

参数类型必填说明
focusHintobject否
focusHint.typestring是
focusHint.identifierstring是
tokenBudgetnumber否
contextDepthenum否minimal | standard | comprehensive
initialQuerystring否
maxRecentChangesnumber否
includeArchitectureboolean否
maxCodeContextItemsnumber否
includeRecentConversationsboolean否

详细介绍

DevContext:自主上下文感知 Model-Context-Protocol(MCP)服务

DevContext 横幅

借助智能上下文感知,提升开发工作流——DevContext 能够理解你的代码库、对话和开发模式,在你需要时提供相关上下文。

简介

DevContext 是一款先进的 Model Context Protocol(MCP)服务,旨在为开发者提供持续、以项目为中心的上下文感知。与传统上下文系统不同,DevContext 会持续学习并适应你的开发模式。DevContext 运用先进的检索方法,专注于关键词分析、关系图谱和结构化元数据,在开发过程中提供高度相关的上下文,并深入理解你的对话和代码库。

该服务使用专用于单个项目的数据库实例,消除了跨项目的复杂性,并以最低的资源需求确保性能。DevContext 能够全面理解你的代码库——从仓库结构到单个函数——同时持续学习并适应你的开发模式。

使用此 MCP 服务的最佳方式是按照以下指南实施提供的 Cursor Rules 系统,从而实现:

  • 完全自主的上下文管理
  • 自主管理外部文档上下文及其使用
  • 完整集成任务管理工作流
核心技术
  • Node.js:运行环境(Node.js 18+)
  • TursoDB:针对边缘部署优化的 SQL 数据库(兼容 SQLite)
  • Model Context Protocol SDK:用于与 IDE 客户端进行标准化通信
  • Cursor Rules:自主开发环境和工作流管理
  • JavaScript/TypeScript:纯 JavaScript 实现,无外部机器学习依赖

安装指南

前提条件
  • Node.js 18.0.0 或更高版本
  • 支持 MCP 的 Cursor IDE
  • TursoDB 账户(用于数据库)
步骤 1:设置 TursoDB 数据库
  1. 注册 TursoDB:

    • 访问 Turso 并创建账户
    • 免费套餐足以满足大多数项目的需求
  2. 安装 Turso CLI(可选,但推荐):

    curl -sSfL https://get.turso.tech/install.sh | bash
    
  3. 通过 Turso 进行身份验证:

    turso auth login
    
  4. 创建项目数据库:

    turso db create devcontext
    
  5. 获取数据库凭据:

    # Get database URL
    turso db show devcontext --url
    
    # Create auth token
    turso db tokens create devcontext
    

    保存 URL 和令牌,以便在下一步使用。

步骤 2:在 Cursor 中配置 MCP(也可用于其他 IDE)

在项目目录中创建或编辑 .cursor/mcp.json:

{
  "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"
      }
    }
  }
}

将 your-turso-database-url 和 your-turso-auth-token 替换为步骤 1 中获取的值。

Cursor Rules 实施

DevContext 实现了一套先进的 Cursor Rules,可创建自主开发环境。这些规则将指导 Cursor 的 AI 助手保持项目范围一致、纳入最新文档,并实现高级任务工作流。

敬请期待即将推出的 DevContext Project Generator,它将为你的项目创建一套完整的配置,让你的开发工作流效率提升 10 倍。

关键规则组件
1. DevContext MCP 工具使用指南

核心规则定义了工具执行的精确顺序:

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

此工作流可确保在整个开发过程中全面管理上下文。

2. 外部库文档要求

使用任何外部库之前,都必须先正确检索相关文档:

  • 使用 Context7 进行两步文档检索
  • 对于 Context7 中没有的文档,使用网络搜索作为回退方案
  • 使用多来源文档综合分析,以获得全面理解

这样可以避免 API 使用错误、版本不兼容或缺少依赖项等常见问题。

3. 任务工作流系统

任务工作流系统支持:

  • 在 tasks.md 中进行结构化任务管理
  • 基于任务 ID 的实现顺序
  • 使用完成元数据跟踪状态
  • 集成项目蓝图,提供架构背景
设置 Cursor 规则
  1. 创建规则目录:

    mkdir -p .cursor/rules
    
  2. 下载/复制并粘贴规则:

将 .cursor/rules 目录下载或复制并粘贴到项目中。接下来,将项目根目录中 .cursorrules 文件的内容复制并粘贴到 Cursor 设置中的规则里(Cursor Settings -> Rules -> User Rules)。还应将 .cursorrules 文件复制并粘贴到主目录中。

  1. 自定义任务工作流(可选): 实施 Cursor 规则后,重启 Cursor,然后根据你的项目构想,让它为你创建任务。

配置示例

下面是一个完整的 mcp.json 文件示例,用于配置 DevContext 和 Context7 MCP 服务:

{
  "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"]
    }
  }
}
重要参数
参数描述默认值
TURSO_DATABASE_URLTursoDB 实例的 URL无(必填)
TURSO_AUTH_TOKENTursoDB 的身份验证令牌无(必填)

目录

系统概览

DevContext 是一款先进的软件开发上下文管理系统,采用模型上下文协议(MCP),并实现了高级上下文检索技术。

该系统以 Node.js 应用的形式运行,采用模块化 JavaScript 代码库,并使用 esbuild 打包为单个 .js 文件。它使用 TursoDB(或类似的 SQL 数据库)作为持久化存储,用于存储特定项目的所有上下文、元数据和可选日志。

主要特点:

  • 非向量检索:上下文检索采用复杂的关键词分析、关系图和结构化元数据,而非向量嵌入
  • 以项目为中心的设计:每个服务实例专用于单个项目,简化数据管理
  • 最少依赖项:仅限核心必需项——MCP SDK、TursoDB 客户端和轻量级 AST 解析
  • 分层理解:从代码库结构到函数/变量级别理解上下文
  • 智能上下文优先级排序:根据近期性、重要性、关联关系和开发者关注点进行多因素相关性评分

核心组件

文本处理
  • 支持语言感知分词,并针对 JavaScript/TypeScript、Python、Java、C#、Ruby 和 Go 进行专门处理
  • 关键词提取,并采用特定于语言的加权方式
  • 尊重语义边界的 n 元语法
  • 特定于语言的惯用表达检测
上下文管理
  • 代码实体索引和关系跟踪
  • 对话主题分段和目的检测
  • 时间线事件记录和里程碑快照
  • 根据开发者活动预测关注区域
模式识别
  • 代码模式识别和存储
  • 根据示例自动学习模式
  • 跨会话模式提升
  • 设计模式检测
意图与相关性分析
  • 查询意图预测
  • 多因素上下文优先级排序
  • Token 预算管理
  • 跨主题转换的上下文整合

MCP 工具

DevContext 实现了以下可由 Cursor IDE 调用的 MCP 工具:

initialize_conversation_context

使用全面的项目上下文初始化新的对话会话。

使用时机:每次对话开始时调用,且只调用一次。

主要参数:

  • initialQuery:用户的第一条消息或问题
  • contextDepth:最小、标准或全面的上下文深度
  • includeArchitecture:是否包含架构上下文
  • focusHint:可选,指定要关注的代码实体

返回:对话 ID 和初始上下文摘要

update_conversation_context

使用新消息和代码变更更新当前上下文。

使用时机:代码发生变更或交流新消息后。

主要参数:

  • conversationId:来自 initialize_conversation_context 的 ID
  • newMessages:上次更新以来交流的新消息
  • codeChanges:新建或修改的代码文件
  • preserveContextOnTopicShift:主题切换时是否保留上下文

返回:更新后的关注点和上下文连续性信息

retrieve_relevant_context

检索与特定查询相关的上下文片段。

使用时机:需要特定项目上下文时。

主要参数:

  • conversationId:来自 initialize_conversation_context 的 ID
  • query:关于项目的具体问题
  • constraints:可选,用于筛选实体类型、文件路径等的条件
  • weightingStrategy:结果的优先级排序方式

返回:相关上下文片段及其说明

record_milestone_context

记录重要的开发里程碑,供日后参考。

使用时机:完成重要功能、修复关键 Bug 或做出架构决策后。

主要参数:

  • conversationId:来自 initialize_conversation_context 的 ID
  • name:简短且能描述里程碑的名称
  • description:详细说明
  • milestoneCategory:类别(功能、Bug 修复、重构等)
  • assessImpact:是否分析影响

返回:里程碑 ID 和影响评估

finalize_conversation_context

结束对话、提取经验并建议后续步骤。

使用时机:每次对话结束时调用,且只调用一次。

主要参数:

  • conversationId:来自 initialize_conversation_context 的 ID
  • extractLearnings:是否识别并提取经验
  • promotePatterns:是否将模式提升至全局仓库
  • generateNextSteps:是否建议后续操作

返回:对话摘要、提取的经验和后续步骤

数据架构

DevContext 使用 SQL 数据库(TursoDB),包含以下核心表:

  • code_entities:存储从文件、函数、类等索引的代码。
  • entity_keywords:将关键词映射到代码实体,以便搜索。
  • code_relationships:跟踪代码实体之间的关系。
  • conversation_history:存储对话消息。
  • conversation_topics:将对话划分为连贯的主题。
  • timeline_events:记录重要的开发事件。
  • project_patterns:存储识别出的代码模式。
  • focus_areas:跟踪开发者的关注点和意图。

数据库架构由服务自动创建和维护。

技术规格

  • Node.js:要求版本 18.0.0 或更高
  • 数据库:TursoDB(或兼容的 SQLite)
  • 打包:使用 ESBuild 进行单文件部署
  • 协议:通过 @modelcontextprotocol/sdk 使用 Model Context Protocol
  • 解析:轻量级 JavaScript AST 解析(acorn)
  • 操作系统:跨平台(Windows、macOS、Linux)

性能注意事项

DevContext 针对以下方面进行了性能优化:

  • 高效 SQL 查询,并配有适当的索引
  • 内存缓存,用于频繁访问的数据
  • 增量更新,以尽量减少处理量
  • 异步操作,实现非阻塞执行
  • 根据令牌预算自适应检索上下文
  • 在空闲时段执行计划的后台任务

对于大型代码库(>100,000 行代码),初始索引可能需要几分钟,但后续操作仍能保持快速、灵敏。

安全性

  • 隔离的数据库:每个项目使用专用数据库实例
  • 安全凭据:通过环境变量管理 TursoDB 凭据
  • 输入验证:使用 Zod 架构验证所有输入
  • 参数化查询:防止 SQL 注入
  • 无外部 API:所有处理均在本地进行

故障排查

常见问题和解决方案:

  • 连接错误:检查 TursoDB 凭据和数据库 URL
  • 初始启动缓慢:大型代码库出现此情况属正常;后续启动会更快
  • 缺少上下文:检查令牌预算;必要时增加预算
  • 工具错误:确保在工具之间传递了正确的对话 ID
  • 性能问题:考虑缩小索引文件范围或增大缓存

许可证

本项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。


DevContext:持续上下文,助力持续进步

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。