使用说明
存储器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--传递用户提供的配置,而不将其暴露给LLMversionon both--固定特定的工具模式版本以避免模式注入攻击extra上tools/callresponse--返回跳过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映像的容器注册表
部署
先决条件
- AWS-SAM-CLI
- Node.js 22
- 已配置AWS凭据
- 具有公共子网的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"}'
文档
请参阅 简介/ 涵盖每个架构层的完整教程目录。
