智能知识库服务器

一个为AI代理提供智能知识库的MCP服务器,能够自动化从Jira和Confluence等来源摄入文档,使用AI将原始文本转化为结构化的'How-To'指南,并通过向量搜索支持代理查询。

  • by Mitek99
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 ai-1st/memory-mcp

使用说明

存储器mcp

一个MCP服务器,作为人工智能代理的智能知识库。它自动接收文档(来自Jira和Confluence等来源),使用人工智能将原始文本提取为结构化的“操作指南”,并使代理能够使用向量搜索查询此内存。

flowchart TD
    A0["MCP Protocol Layer"] -- "Routes requests to" --> A5["Tool Registry"]
    A5 -- "Retrieves data from" --> A4["Single-Table Data Access"]
    A5 -- "Performs semantic search via" --> A3["Vector Search System"]
    A5 -- "Triggers document processing via" --> A1["AI Knowledge Processor"]
    A6["Admin REST API"] -- "Enqueues scrape jobs in" --> A2["Async Ingestion Pipeline"]
    A2 -- "Delegates content processing to" --> A1
    A1 -- "Generates and stores embeddings via" --> A3
    A1 -- "Persists extracted topics to" --> A4

建筑

层 目的
MCP协议层 人工智能代理的JSON-RPC 2.0前门——验证、解析和路由请求
工具注册表 面向代理的功能的中央目录(add_doc, semantic_search, list_topics等等)
AI知识处理器 使用LLM从原始文档中提取结构化的操作指南,并进行重复数据删除
矢量搜索系统 生成嵌入(Amazon Titan),并对S3存储的向量执行余弦相似性搜索
单表数据访问 用于项目、文档和主题的DynamoDB单表设计(PK/SK+GSI)
异步摄入管道 SQS支持从Jira/Confluence进行后台批量进口的刮削和加工工人
管理员REST API 面向人的仪表板的REST端点——管理项目、触发抓取、重试作业、控制并发

MCP工具

工具 说明
add_doc 摄取文档——人工智能提取“操作指南”、重复数据消除和存储
get_document 按ID检索文档
semantic_search 跨知识库的向量相似性搜索
list_projects 列出所有项目
create_project 创建新项目
list_topics 列出项目中的主题
list_categories 列出主题类别
list_documents 列出项目中的文档
rebuild_site 通过ECS Fargate触发Hugo站点重建

WebTools扩展

此实现扩展了标准MCP协议,包括:

  • configSchema 上 tools/list --让服务器声明客户端与LLM负载分开发送的配置参数(令牌、cred)
  • config 上 tools/call --传递用户提供的配置,而不将其暴露给LLM
  • version on both--固定特定的工具模式版本以避免模式注入攻击
  • extra 上 tools/call response--返回跳过LLM直接进入环境的图表、原始数据或日志

项目结构

memory-mcp/
├── template.yaml              # AWS SAM template
├── src/
│   ├── index.js               # MCP Lambda handler (JSON-RPC)
│   ├── mcp/
│   │   ├── router.js          # JSON-RPC method router
│   │   ├── handlers/          # initialize, ping, tools, prompts, resources
│   │   └── utils.js           # JSON-RPC response helpers
│   ├── tools/                 # MCP tool definitions + execute functions
│   ├── lib/
│   │   ├── ai.js              # LLM extraction & classification (Bedrock Claude)
│   │   ├── embeddings.js      # Embedding generation & vector search (Titan)
│   │   ├── processor.js       # Document processing orchestrator
│   │   ├── db.js              # DynamoDB single-table access
│   │   ├── queue.js           # SQS job tracking helpers
│   │   ├── scraper.js         # Jira/Confluence scrapers (async generators)
│   │   └── html.js            # HTML parsing utilities
│   ├── admin/
│   │   ├── index.js           # Admin API Lambda handler
│   │   ├── router.js          # REST path router
│   │   └── routes/            # projects, documents, categories, search, queues, scrape, site
│   ├── workers/
│   │   ├── scrapeWorker.js    # SQS-triggered bulk scraper
│   │   └── processWorker.js   # SQS-triggered AI processor
│   └── package.json
├── site/                      # Hugo site builder (Dockerfile for ECS Fargate)
└── intro/                     # Tutorial documentation

AWS资源

通过SAM部署(template.yaml):

  • 匿名函数 -MCP服务器,管理员API,抓取工人,流程工人(Node.js 22/ARM64)
  • DynamoDB --带有GSI1、PAY_PER_REQUEST的单表
  • 第3页 --矢量存储桶+Hugo站点桶
  • 平方英尺 --刮擦队列+进程队列(带DLQ)
  • 云锋 --生成的Hugo站点的CDN
  • ECS Fargate --雨果网站建设者(FARGATE_SPOT)
  • ECR --Hugobuilder映像的容器注册表

部署

先决条件

  1. AWS-SAM-CLI
  2. Node.js 22
  3. 已配置AWS凭据
  4. 具有公共子网的VPC(用于Fargate任务)

构建和部署

sam build
sam deploy --region us-east-1 --parameter-overrides VpcId=vpc-xxx SubnetIds=subnet-aaa,subnet-bbb

部署后,SAM输出MCP服务器URL和管理员API URL。

测试

curl -X POST https://<mcp-server-url> \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

文档

请参阅 简介/ 涵盖每个架构层的完整教程目录。