mcpField
A
ASTGL Knowledge

ASTGL Knowledge

本地服务
astgl.ai开发工具02 天前更新

关于 ASTGL Knowledge

ASTGL Knowledge 是面向需要检索和引用 ASTGL 文章、指南、教程及项目文档的助手的 MCP 服务。它提供语义搜索和结构化查询,并在结果中附带来源 URL。

主要功能

  1. 01文章语义搜索
  2. 02直接答复与教程
  3. 03主题比较
  4. 04结构化文章查询
  5. 05Markdown 与分析数据导出

适用场景

  1. 01查找 MCP 服务或本地 AI 相关指南
  2. 02为自动化任务检索教程
  3. 03使用带引用的 ASTGL 内容比较主题
  4. 04生成文章综述或问答汇编

MCP 相关

该服务提供 17 个工具,用于搜索、浏览、比较和导出 ASTGL 内容。语义工具通过运行 `nomic-embed-text` 的本地 Ollama 嵌入查询;元数据工具无需 Ollama。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"jmeg8r-astgl-knowledge": {
"command": "npx",
"args": [
"-y",
"mcp-astgl-knowledge"
]
}
}
}
启动命令npx -y mcp-astgl-knowledge

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

安装包
npmmcp-astgl-knowledge1.3.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

mcp-astgl-knowledge

一个 MCP 服务,可让 AI 助手搜索并引用 As The Geek Learns 的内容,涵盖 MCP 服务、本地 AI、AI 自动化和 ASTGL 项目文档。

AI 助手连接到此服务后,即可搜索已编入索引的 ASTGL 条目(文章、教程、比较、指南和项目文档)。搜索结果包含指向 astgl.ai 的来源 URL。

**要求:**语义工具(search_articles、get_answer、get_tutorial、compare_topics)会在运行时使用本地运行的 Ollama 和 nomic-embed-text 为查询生成嵌入向量(默认地址为 http://localhost:11434)。元数据工具(find_articles、list_tags、list_topics、get_latest)无需 Ollama 即可使用。

快速开始

Claude Desktop

添加到你的 claude_desktop_config.json:

{
  "mcpServers": {
    "astgl-knowledge": {
      "command": "npx",
      "args": ["-y", "mcp-astgl-knowledge"]
    }
  }
}
Claude Code

添加到项目的 .mcp.json:

{
  "mcpServers": {
    "astgl-knowledge": {
      "command": "npx",
      "args": ["-y", "mcp-astgl-knowledge"]
    }
  }
}
Cursor / 通用 MCP 客户端
{
  "mcpServers": {
    "astgl-knowledge": {
      "command": "npx",
      "args": ["-y", "mcp-astgl-knowledge"]
    }
  }
}
注册后使用(每天 500 次查询)

通过 register 工具注册以获取 API 密钥,然后将其添加到配置中:

{
  "mcpServers": {
    "astgl-knowledge": {
      "command": "npx",
      "args": ["-y", "mcp-astgl-knowledge"],
      "env": {
        "ASTGL_API_KEY": "astgl_your_api_key_here"
      }
    }
  }
}

工具

search_articles

按查询搜索知识库。返回按相关性排序的结果、相关性评分和来源 URL。

参数类型必填说明
querystring是搜索查询(例如,“如何构建 MCP 服务”)
limitnumber否结果数量上限,1-20(默认值:5)
content_typestring否按类型筛选:article、tutorial、faq、comparison、guide、newsletter、project
get_answer

获取针对特定问题的直接回答。优先使用 FAQ 条目,以提供简洁的回答。

参数类型必填说明
questionstring是具体问题(例如,“什么是 MCP 服务?”)
content_typestring否按内容类型筛选
get_tutorial

从教程和指南内容中获取分步说明。

参数类型必填说明
querystring是你想学习的内容(例如,“在 Mac 上设置 Ollama”)
compare_topics

并排比较两个主题。

参数类型必填说明
topic_astring是第一个主题
topic_bstring是第二个主题
get_latest

获取最近添加的内容。

参数类型必填说明
limitnumber否结果数量上限,1-20(默认值:5)
list_topics

浏览知识库中的所有主题及其内容类型和章节标题。

register

注册你的电子邮箱,将每日查询次数从 50 次提升至 500 次。

参数类型必填说明
emailstring是你的电子邮箱地址
更多工具

此服务总共注册了 17 个工具。其他工具如下:

工具功能主要参数
find_articles按标签、类型、标题文本和日期范围进行结构化查找(无需嵌入向量)tag、content_type、title、date_from、date_to
list_tags列出每个标签及其文章数量—
suggest_ideas根据查询分析提供主题建议(内容缺口、低置信度查询)days(默认值为 7)、limit
add_idea / list_ideas / export_ideas与索引一同存储的创意日志title、description、status、priority、source
export_article将一篇文章导出为 Markdown 帖子url
export_topic_roundup根据相关文章生成主题汇总帖子topic、limit
export_qa_compilation根据文章问答对生成 FAQ 风格的 Markdown 内容topic、limit
generate_dashboard_dataJSON 分析快照(可选写入 data/dashboard.json)days(默认值为 30)、output_file

内容类型

类型描述
article关于 MCP、本地 AI 和自动化的资讯内容
projectASTGL 项目文档
tutorial分步操作指南
comparison并列主题分析
guide综合参考资料
newsletter个人动态和公告
faq以问答内容为主
conceptWiki 概念页面(仅允许列表中的页面公开)
entityWiki 实体页面(仅允许列表中的页面公开)

随着内容增加,数量会发生变化;调用 list_topics 或 list_tags 获取当前索引。 draft 和 synthesis 条目仅存在于维护者数据库中,并会从已发布的数据库中移除。 工具架构中的 content_type 描述仅列出前七种类型。

速率限制

层级限制获取方式
公共每天 50 次查询默认(匿名)
已注册每天 500 次查询使用 register 工具并提供电子邮箱

限制在 UTC 午夜重置。每个响应中都会包含速率限制信息。

限制和注册由服务进程本身强制执行:使用记录和注册信息保存在本地 SQLite 文件中(位于软件包旁的 data/query-log.db,或由 ASTGL_QUERY_LOG_DB 指定),匿名客户端会在 ~/.astgl-client-id 中获得一个持久 ID。只有当 ASTGL_API_KEY 存在于本地注册表中时,才会被视为已注册。

工作原理

知识库使用语义嵌入(nomic-embed-text,768 维)根据 ASTGL 文章预先构建。内容按章节和 FAQ 条目分块,经过嵌入后存储在 SQLite 数据库中,并使用 sqlite-vec 进行向量相似度搜索。

文章嵌入会预先计算并随 npm 软件包一起提供,因此无需重新索引内容。对于语义工具,你的查询仍会在运行时通过 Ollama 进行嵌入(请参阅上方的要求)。

如果 data/knowledge.db 存在(维护者检出目录),服务会打开该文件;否则会打开 build/knowledge-public.db。npm 软件包仅包含 build/knowledge-public.db,该文件由 npm run build-public-db 通过实际移除所有非公开行生成(参见 docs/adr/)。

性能
  • 典型响应时间:100-500 毫秒(嵌入查询 + 向量搜索)
  • 嵌入结果会缓存在内存中(LRU,200 个条目)——重复查询几乎即时返回
  • Ollama 调用包含 10 秒超时 + 自动重试
  • 查询日志采用异步/批处理方式,避免阻塞响应
  • 速率限制检查缓存 5 秒

面向维护者

设置
git clone https://github.com/Jmeg8r/mcp-astgl-knowledge.git
cd mcp-astgl-knowledge
npm install
脚本
脚本描述
npm run build编译 TypeScript
npm test运行测试套件(通过 tsx 使用 node:test)
npm run dev以开发模式运行 MCP 服务(tsx)
npm start运行已编译的 MCP 服务
npm run ingest根据本地 Markdown 重建 knowledge.db(需要 Ollama)
npm run ingest-projects从 astgl-site 的 projects.json 索引项目文档
npm run discover轮询 RSS/站点地图以发现新内容
npm run structure处理已发现的内容(分类、嵌入、索引)
npm run pipeline一步完成发现和结构化处理
npm run daily-report生成 AEO 分析报告
npm run alerts运行内容缺口提醒检查
npm run freshness检查过时内容和生态系统版本变更
npm run publish-drift比较本地可发布内容与 npm 实际提供的内容
npm run citation-test手动测试 AI 引用
npm run related通过向量相似度生成文章内部链接
npm run build-public-db写入已移除非公开行的 build/knowledge-public.db(在 prepack 中运行)

其他维护者脚本(草稿导入和核对、重写队列、Wiki 同步、备份清理、仪表板数据、MCPB 捆绑包)列于 package.json 中。

环境变量
变量默认值描述
OLLAMA_URLhttp://localhost:11434Ollama 端点(仅用于开发/重建)
EMBED_MODELnomic-embed-text嵌入模型
DISCORD_WEBHOOK_URL—用于报告/提醒的 Discord webhook
ASTGL_API_KEY—已注册层级的 API 密钥
ASTGL_ARTICLES_DIR~/Projects/astgl-site/src/content/answers本地 Markdown 源文件
ASTGL_PROJECTS_JSON~/Projects/astgl-site/src/data/projects.json项目数据源
ASTGL_QUERY_LOG_DBdata/query-log.db查询日志、速率限制和注册信息
ASTGL_CITATION_TEST_DBdata/citation-test.db引用测试结果
自动化任务
任务时间安排用途
内容流水线每 6 小时发现并整理新内容
每日报告上午 8 点查询分析和健康指标(JSON 报告)
内容提醒上午 9 点内容缺口检测、零引用检测、竞品扫描(JSON 报告)
新鲜度检查上午 10 点过时内容和生态版本追踪(JSON 报告)
草稿流水线午夜为发布前的草稿建立索引
Wiki 同步00:30将带标签的 Wiki 页面增量同步到索引中
草稿协调器凌晨 2 点移除源文件已不存在的草稿条目
引用测试提醒每周一上午 9 点提醒运行引用测试

任务时间安排定义在 cron/*.json 中;定时报告任务会输出 JSON,供外部调度器获取并发送。使用 --discord 运行报告脚本,可改为将报告发送到 DISCORD_WEBHOOK_URL。流水线、草稿和 Wiki 任务的 macOS launchd plist 文件位于 launchd/ 中。

架构

flowchart TD
    Client["MCP client<br/>(Claude, Cursor, ...)"] -->|"stdio"| Server["MCP server<br/>src/index.ts (17 tools)"]
    Server --> RL["Rate limit + query log<br/>data/query-log.db"]
    Server --> Search["src/search.ts"]
    Search -->|"embed query"| Ollama["Ollama<br/>nomic-embed-text"]
    Search -->|"sqlite-vec KNN"| KDB[("knowledge.db<br/>or knowledge-public.db")]
    Sources["astgl.ai RSS / sitemap<br/>+ local markdown"] -->|"discover, structure, ingest"| KDB
    KDB -->|"build-public-db"| Pub[("build/knowledge-public.db<br/>(shipped in npm)")]
    Jobs["Report jobs<br/>daily report, alerts, freshness"] -.->|"--discord (manual)"| Discord["Discord webhook"]

渲染后的图表位于 docs/diagrams/mcp-astgl-knowledge.architecture.svg (源文件:docs/diagrams/mcp-astgl-knowledge.architecture.json)。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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