关于 Seta MCP - Up-to-date Local Docs for Coding
Seta MCP 是面向 Salesforce 开发者的本地文档 MCP 服务,可在编写代码和配置时提供文档上下文。它支持离线使用、控制文档版本与内容,并可选用语义搜索。
主要功能
- 01读取本地目录中的文档
- 02通过清单搜索文档库和主题
- 03获取包含关联上下文的文档
- 04可选的语义搜索索引
- 05离线使用并控制文档内容
适用场景
- 01查找相关 Apex 文档
- 02查询 LWC 实现指南
- 03向大模型提供内部文档
- 04关键词不匹配时搜索文档
MCP 相关
该 MCP 服务提供用于查找文档库和读取本地文档内容的工具,供 MCP 客户端调用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Seta MCP - 面向编码的最新本地文档
帮助 Salesforce 开发者编写代码和创建配置!这是一个可在本地运行或托管在远程的 MCP 服务。
该服务旨在从本地文件系统获取文档,让你完全掌控提供给 AI 助手的上下文。
灵感来自 context7,但此应用使用本地文档库。
为什么使用它?
Seta MCP 服务由三个主要组件构成:
- MCP 服务代码(本仓库)
- Apex、LWC、配置等开放/公开、内部或专有文档
- 全新:用于智能文档发现的语义搜索索引器
Seta MCP 可帮助你:
- 完全离线工作。
- 精细控制文档的具体版本和内容。
- 快速迭代文档,并立即将其提供给大模型。
- 全新:使用语义搜索查找相关文档,即使关键词不完全匹配也能找到。
💡 工作原理?
此 MCP 服务会从你指定的本地目录结构中读取文档。
- 设置
LOCAL_DOCS_PATH:通过LOCAL_DOCS_PATH环境变量指定文档的根目录。 - 整理文档库:在
LOCAL_DOCS_PATH中,每个文档库或文档集都应位于单独的子目录中。 - 增强版
manifest.json:每个文档库子目录必须包含一个manifest.json文件,其中包含丰富的元数据,包括难度级别、用例、学习路径和语义分组。 - 可选的语义索引:运行
seta-indexer,创建用于语义搜索的向量数据库。
在向大模型(例如,在 VSCode 中)输入 use latest Apex docs、use seta,或在提示词中引用以下任一工具时:
get-library-id工具会搜索LOCAL_DOCS_PATH中的manifest.json文件,以查找匹配的文档库。get-library-docs工具随后会从本地文件系统获取指定文档文件的内容。
🛠️ 入门
要求
- Node.js >= v18.0.0
- VSCode、Cursor、Windsurf、Claude Desktop 或其他 MCP 客户端。
- 一个包含文档的本地目录,目录结构如下文所述。
- 必须设置
LOCAL_DOCS_PATH环境变量,使其指向此目录。
本地文档结构
LOCAL_DOCS_PATH 应指向一个根目录。每个文档库都应有自己的文件夹:
<your_LOCAL_DOCS_PATH>/
├── my-awesome-lib/
│ ├── manifest.json
│ ├── main_guide.md
│ ├── .seta_lancedb/ # Created by seta-indexer (optional)
│ └── topics/
│ └── report.md
│ └── advanced_reports.txt
└── another-tool/
├── manifest.json
└── quick_start.md
增强版 manifest.json 格式
每个文档库目录(例如,my-awesome-lib/)都必须包含一个采用以下增强格式的 manifest.json 文件:
{
"name": "My Awesome Library",
"description": "A brief description of what this library does.",
"version": "2.1.0",
"default_doc": "main_guide.md", // File to use if no topic is specified
"topics": [
{
"name": "report",
"file": "report.md",
"tags": ["report"],
"related": ["advanced"],
"prerequisites": [],
"leads_to": ["advanced"],
"difficulty": "beginner",
"use_cases": ["basic reporting", "data visualization"],
"code_patterns": ["SOQL queries", "report types"]
},
{
"name": "advanced",
"file": "topics/advanced_reports.txt",
"tags": ["advanced"],
"related": ["report"],
"prerequisites": ["report"],
"leads_to": [],
"difficulty": "advanced",
"use_cases": ["complex analytics", "custom report types"],
"code_patterns": ["dynamic SOQL", "custom report builders"]
}
],
"semantic_groups": {
"fundamentals": ["report"],
"advanced_features": ["advanced"]
},
"learning_paths": {
"beginner": ["report"],
"expert": ["report", "advanced"]
},
"totalSnippets": 25 // Optional: for display purposes
}
增强版主题属性:
prerequisites(字符串数组,可选):应预先掌握的主题leads_to(字符串数组,可选):自然衔接至此主题之后的主题difficulty(字符串,可选):"beginner"、"intermediate" 或 "advanced"use_cases(字符串数组,可选):此主题的实际应用code_patterns(字符串数组,可选):涵盖的代码模式或技术
新增的文档库级属性:
semantic_groups(对象,可选):相关主题的命名集合learning_paths(对象,可选):针对不同技能水平建议的主题学习顺序
增强版主题查找的工作方式:
- 搜索时,服务会将你的查询与文档库名称、描述、主题名称、标签、
use_cases和code_patterns进行匹配。 - 获取某个主题的文档时,服务会自动纳入其先决主题、相关主题和后续步骤的上下文。
- 你可以按名称请求整个语义分组或学习路径。
🔍 使用 seta-indexer 进行语义搜索
开发
克隆项目并安装依赖:
npm i
构建(假设 main.ts 位于根目录,且 tsconfig.json 已配置 outDir: "./dist" 和 rootDir: "./"):
npm run build
这会将 main.ts(以及 lib/ 和 indexer/ 中的文件)编译到 dist/main.js 和 dist/indexer/cli.js。
本地配置示例(用于开发)
要通过 Cursor 这类 MCP 客户端运行本地开发版本:
{
"mcpServers": {
"seta_dev": {
"command": "npx",
"args": ["tsx", "/path/to/your/project/dist/main.js"],
"env": {
"LOCAL_DOCS_PATH": "/absolute/path/to/your/test_documentation_root", // Essential for testing
"DEFAULT_MAX_TOKENS": "5000" // Optional
}
}
}
}
使用 MCP Inspector 测试
确保已在环境中设置 LOCAL_DOCS_PATH。
# For published version
# export LOCAL_DOCS_PATH="/path/to/your/docs"
npx -y @modelcontextprotocol/inspector npx seta-mcp@latest
免责声明
本项目依赖于您提供的文档。生成的上下文的质量、准确性和完整性直接取决于您的本地文档文件。使用本项目的风险由您自行承担。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。