Token导航 LogoToken导航TokenDH.com
Kg Memory MCP logo
数据服务未说明官方级别未说明来源级核验

Kg Memory MCP

MCP Server

一个将非结构化文本转化为可搜索知识图谱的服务,具备AI驱动的知识提取、概念化和语义搜索功能。

工具数

5

提示词数

0

GitHub Stars

0

资源数

0
知识图谱PostgreSQLClaude搜索Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Andrewske

提供方

Andrewske

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

知识图谱MCP服务器

![MCP Protocol](https://github.com/modelcontextprotocol) ![TypeScript](https://www.typescriptlang.org/) ![PostgreSQL](https://www.prisma.io/) ![OpenAI](https://openai.com/)

A. 模型上下文协议(MCP) 该服务器利用人工智能技术,将非结构化文本转换为可搜索的知识图谱,具备提取、概念化和语义搜索功能。

特点/功能快速入门建筑学API 参考文档示例贡献;助力

目录

- 先决条件 - 安装 - 配置 - 数据库设置

- 运输方式 - MCP 工具 - HTTP API 端点

概述

知识图谱MCP服务器是一个复杂的系统,能够自动从文本中提取结构化知识,构建一个包含实体、关系、事件和概念的可查询图数据库。它既支持通过STDIO进行的传统MCP通信,也支持带有服务器发送事件(SSE)的现代HTTP/REST API。

灵感这个项目深受以下开创性工作的启发: AutoSchemaKG 可以翻译为“自动模式知识图谱”或“自动生成模式的知识图谱”,具体取决于上下文和语境。在这里,“AutoSchema”指的是自动生成或自动定义的模式或结构,“KG”代表知识图谱(Knowledge Graph)。因此,整个短语可以理解为一种能够自动生成或自动定义模式的知识图谱系统或方法。该方法开创性地采用了实体-事件双模建模和动态模式归纳来自主构建知识图谱。我已将他们关于多阶段三元组抽取、概念化过程以及事件在知识表示中作为首要要素的重要性的核心见解进行了适应性调整,并将其实现为一个实用的多模式上下文(MCP)服务器,以集成到人工智能助手中。

什么是MCP?

这个(或“该”) 模型上下文协议(MCP) 这是一个开放协议,用于规范人工智能助手(如Claude)与外部工具和数据源的通信方式。该服务器实现了MCP(机器通信协议),为人工智能系统提供知识图谱功能。

关键能力

  • 🧠 人工智能驱动的提取技术自动从文本中提取四种类型的知识三元组
  • 🔍 语义搜索使用向量嵌入和融合排序的多模态搜索
  • 📊 概念化在不同抽象层次上生成层次化概念
  • 🔄 去重利用语义相似性进行智能重复检测
  • 🚀 双运输支持STDIO(用于MCP客户端)和HTTP(用于Web应用程序)
  • ⚡ 准备就绪,可投入生产使用TypeScript、PostgreSQL以及企业级安全技术构建

特点/功能

知识提取

服务器提取了四种不同类型的知识关系:

  1. 实体-实体关系人、地点、组织之间的联系

- 示例: (Alice, works_for, TechCorp)

  1. 实体-事件关系实体如何参与事件

- 示例: (Bob, attended, Conference_2024)

  1. 事件间的关系事件之间的时间关系和因果关系

- 示例: (Meeting, preceded, Decision)

  1. 情感背景情感和情绪状态

- 示例: (Team, felt_confident_about, Project_Launch)

概念化

从提取的知识中自动生成抽象概念:

  • 高级别广泛的主题和类别(例如,“合作”、“创新”)
  • 中等水平特定领域的概念(例如,“软件开发”、“团队动态”)
  • 低级别具体实例和细节(例如,“冲刺计划”、“代码审查”)

搜索功能

结合多种策略的高级融合搜索:

  • 实体搜索通过名称查找特定实体
  • 关系搜索通过谓词模式查询
  • 语义搜索全文相似度搜索
  • 概念搜索抽象概念匹配
  • 融合排名所有搜索类型的加权组合

向量嵌入

  • OpenAI(一家人工智能研究实验室) text-embedding-3-small (1536个维度)
  • 按需生成,无需缓存
  • 高效的批处理
  • PostgreSQL 的 pgvector 用于相似性搜索

技术栈

  • 运行时使用ES模块的Node.js
  • 语言TypeScript(ES2022)配合严格类型检查
  • 数据库使用Prisma ORM和pgvector的PostgreSQL
  • 向量搜索pgvector 扩展
  • 人工智能服务提供商通过AI SDK连接OpenAI和Anthropic
  • HTTP服务器使用安全中间件的Express.js
  • 作业队列QStash 用于异步处理
  • 测试带有TypeScript支持的Jest
  • 代码质量用于代码检查和格式化的生物圈(或工具集)
  • 包管理器pnpm

架构概述

纯功能架构

该代码库遵循严格的函数式编程原则:

  • 纯函数所有操作都是无状态的,并且具有明确的依赖关系
  • 没有隐藏状态没有工厂(模式)、关闭(操作)或隐式变异
  • 结果类型无异常的一致错误处理
  • 明确的依赖关系所有函数都将所需服务作为参数接收

三阶段处理流水线

知识处理采用了一种协调的流水线架构:

  1. 提取阶段基于人工智能的文本三重提取
  2. 概念阶段抽象概念生成与层次结构构建
  3. 去重阶段语义重复检测与去除

每个阶段都作为独立的QStash作业运行,具备进度跟踪和错误恢复功能。

统一向量存储

所有嵌入都存储在一个单独的(文件/数据库/位置)中 vector_embeddings 带类型判别的表格:

  • 实体实体搜索的实体名称嵌入
  • 关系谓词/关系嵌入
  • 语义用于语义搜索的完整三元组内容嵌入
  • 概念抽象概念嵌入

双运输设计

服务器支持两种独立的传输模式:

  • STDIO 传输传统上,Claude Desktop 使用 stdin/stdout 进行 MCP(机器控制协议)通信
  • HTTP传输用于Web应用程序的带有服务器发送事件的RESTful API
  • 双模式两辆运输车同时运行

入门指南/开始使用

先决条件

  • Node.js 20+(建议使用长期支持版本)
  • 带有pgvector扩展的PostgreSQL 15+
  • pnpm 包管理器
  • OpenAI或Anthropic API密钥

安装

  1. 克隆仓库
   git clone https://github.com/yourusername/kg-memory-mcp.git
   cd kg-memory-mcp
  1. 安装依赖项
   pnpm install
  1. 设置环境变量
   cp .env.example .env
   # Edit .env with your configuration
  1. 初始化数据库:
   pnpm run db:push

配置

创建一个 .env 包含以下变量的文件:

# Database (Required)
DATABASE_URL="postgresql://user:password@localhost:5432/knowledge_graph"

# AI Provider Keys (Required - choose one or both)
OPENAI_API_KEY="sk-..."
ANTHROPIC_API_KEY="sk-ant-..."

# Transport Configuration
ENABLE_STDIO_TRANSPORT=true     # Enable MCP over STDIO
ENABLE_HTTP_TRANSPORT=false     # Enable HTTP REST API
NODE_ENV=development            # development | production

# HTTP Transport Configuration
HTTP_PORT=3000                  # HTTP server port
HTTP_BASE_PATH=/api             # API base path
HTTP_CORS_ORIGINS=*             # CORS origins
HTTP_RATE_LIMIT_WINDOW=15       # Rate limit window (minutes)
HTTP_RATE_LIMIT_MAX=100         # Max requests per window
HTTP_ENABLE_SSE=true            # Enable Server-Sent Events

# Job Queue (Optional - for async processing)
QSTASH_TOKEN="qstash_..."       # QStash token for job processing
QSTASH_URL="https://..."        # QStash callback URL

# AI Configuration
AI_PROVIDER=openai              # openai | anthropic
AI_MODEL=gpt-4o-mini           # AI model for extraction
EMBEDDING_MODEL=text-embedding-3-small  # Embedding model
EXTRACTION_METHOD=four-stage    # Four-stage parallel extraction (optimal performance)

# Knowledge Graph Configuration
KG_EMBEDDING_MODEL=text-embedding-3-small
KG_EMBEDDING_DIMENSIONS=1536
KG_EXTRACTION_MODEL=gpt-4o-mini
KG_AI_PROVIDER=openai

# Logging & Debugging
LOG_LEVEL=INFO                  # ERROR | WARN | INFO | DEBUG | TRACE
LOG_TO_STDERR=false             # Write logs to stderr
LOG_STACK_TRACE=false           # Include stack traces
DIAGNOSTIC_MODE=false           # Log full request/response payloads

# Granular Debug Configuration (Development)
DEBUG_EXTRACTION=false          # Debug extraction operations
DEBUG_DATABASE=false            # Debug database operations
DEBUG_EMBEDDINGS=false          # Debug embedding generation
DEBUG_CONCEPTS=false            # Debug concept operations
DEBUG_DEDUPLICATION=false       # Debug deduplication
DEBUG_PIPELINE=false            # Debug pipeline coordination

# Performance Tuning
BATCH_SIZE=100                  # Embedding batch size
SEARCH_TOP_K=10                 # Initial search candidates
MIN_SCORE=0.7                   # Similarity threshold
SEMANTIC_THRESHOLD=0.85         # Deduplication threshold
DB_MAX_CONNECTIONS=20           # Database connection pool

数据库设置

  1. 安装带有pgvector的PostgreSQL:
   # macOS
   brew install postgresql pgvector

   # Ubuntu/Debian
   sudo apt-get install postgresql postgresql-contrib
   sudo apt-get install postgresql-15-pgvector
  1. 创建数据库并启用pgvector
   CREATE DATABASE knowledge_graph;
   \c knowledge_graph
   CREATE EXTENSION IF NOT EXISTS vector;
  1. 运行 Prisma 迁移
   pnpm run db:push
  1. 创建向量索引 (可选,但建议):
   -- Unified vector embeddings index
   CREATE INDEX idx_vector_embeddings_embedding 
   ON vector_embeddings USING ivfflat (embedding vector_cosine_ops);

   -- Additional indexes for efficient filtering
   CREATE INDEX idx_vector_embeddings_type_embedding 
   ON vector_embeddings USING btree (vector_type);

   CREATE INDEX idx_vector_embeddings_entity_name 
   ON vector_embeddings USING btree (entity_name);

使用方法

运输方式

该服务器支持两种传输模式,它们可以独立运行或同时运行:

STDIO 传输(传统 MCP)

适用于Claude Desktop及其他MCP客户端:

# Development
pnpm run dev:stdio

# Production
pnpm run build
pnpm run start:stdio

克劳德桌面配置 (.claude/config.json):

{
  "mcpServers": {
    "knowledge-graph": {
      "command": "node",
      "args": ["/path/to/kg-memory-mcp/dist/index.js"],
      "env": {
        "DATABASE_URL": "postgresql://...",
        "OPENAI_API_KEY": "sk-...",
        "ENABLE_STDIO_TRANSPORT": "true",
        "ENABLE_HTTP_TRANSPORT": "false"
      }
    }
  }
}

HTTP传输(REST API)

对于Web应用程序和自定义集成:

# Development
pnpm run dev:http

# Production
pnpm run build
pnpm run start:http

双模式

同时运行两个传输:

# Development
pnpm run dev:dual

# Production
pnpm run build
pnpm run start:dual

MCP 工具

服务器通过MCP协议提供了5个主要工具:

1. process_knowledge

使用三阶段流程从文本中提取并存储知识:

{
  text: string;              // Text to process
  source: string;            // Source identifier
  source_type: string;       // Type: "thread", "file", "manual", "api"
  source_date: string;       // ISO date string
}

退货三阶段流水线(提取→概念识别→去重)的作业追踪信息

示例:

{
  "text": "Alice works at TechCorp as a senior engineer. She led the API redesign project in 2024.",
  "source": "meeting_notes_001",
  "source_type": "manual",
  "source_date": "2024-01-15T10:00:00Z"
}

2. get_pipeline_status

获取知识处理管道的状态和进度:

{
  parentJobId: string;       // Parent job ID from process_knowledge
}

退货所有流水线阶段的实时进度跟踪

示例

{
  "parentJobId": "abc123-def456-ghi789"
}

3. search_knowledge_graph

使用融合排名进行搜索(结合实体、关系、语义和概念搜索):

{
  query: string;             // Search query
  limit?: number;            // Max results (default: 10)
  threshold?: number;        // Similarity threshold (default: 0.0)
  searchTypes?: string[];    // Enable specific search types (default: all)
  weights?: {                // Custom ranking weights
    entity?: number;         // Default: 0.3
    relationship?: number;   // Default: 0.2
    semantic?: number;       // Default: 0.3
    concept?: number;        // Default: 0.2
  };
}

示例

{
  "query": "API redesign project",
  "limit": 20,
  "searchTypes": ["entity", "semantic"],
  "weights": {
    "entity": 0.4,
    "semantic": 0.6
  }
}

4. search_concepts

搜索概念抽象(或概念化抽象):

{
  query: string;                    // Search query
  abstraction?: "high" | "medium" | "low";  // Filter by level
}

5. get_knowledge_graph_stats

获取知识图谱的统计数据和指标:

{} // No parameters required

回报包括三元组计数、概念计数、向量嵌入和数据库指标在内的综合统计数据

HTTP API 端点

当以HTTP模式运行时,以下RESTful端点可用:

核心终端(或核心端点)

  • GET /api/ - 服务信息
  • GET /api/health - 带有依赖状态的健康检查
  • GET /api/metrics - 性能指标
  • GET /api/capabilities - MCP(可能指某特定系统或平台)的功能和工具列表

知识运营

  • POST /api/process-knowledge - 使用三阶段流水线提取并存储知识
  • POST /api/search-knowledge - 跨所有知识类型进行融合搜索
  • POST /api/search-concepts - 搜索概念抽象
  • GET /api/stats - 知识图谱的统计指标和度量标准

管道管理

  • POST /api/get-pipeline-status - 获取处理流程的状态和进度
  • GET /api/job-status/{jobId} - 获取特定作业状态(QStash 集成)

作业队列(与QStash集成)

  • POST /api/process-job - 排队处理知识任务
  • POST /api/jobs/extraction - 队列提取批处理作业
  • POST /api/jobs/concepts - 生成队列概念作业
  • POST /api/jobs/deduplication - 队列去重作业

SSE/MCP 端点

  • GET /api/sse - 通过HTTP实现的MCP协议中的服务器发送事件

响应格式

所有API响应均遵循一致的格式:

{
  success: boolean;
  data?: any;           // Response data
  error?: {
    message: string;
    operation: string;
  };
  operation: string;    // Operation name
  timestamp: string;    // ISO timestamp
}

示例

JavaScript/Node.js

// Simple extraction example
const response = await fetch('http://localhost:3000/api/process-knowledge', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    text: 'The new product launch increased revenue by 25% in Q4 2024.',
    source: 'quarterly_report',
    source_type: 'file'
  })
});

const result = await response.json();
console.log(`Stored ${result.data.triplesStored} triples`);

cURL

# Health check
curl http://localhost:3000/api/health

# Extract knowledge
curl -X POST http://localhost:3000/api/process-knowledge \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Microsoft acquired GitHub in 2018 for $7.5 billion.",
    "source": "tech_news",
    "include_concepts": true
  }'

# Search with fusion
curl -X POST http://localhost:3000/api/search-knowledge \
  -H "Content-Type: application/json" \
  -d '{"query": "Microsoft GitHub acquisition"}'

发展

项目结构

kg-memory-mcp/
├── src/
│   ├── features/              # Core feature modules (pure functions)
│   │   ├── knowledge-extraction/   # AI-powered triple extraction
│   │   ├── conceptualization/      # Concept generation
│   │   ├── deduplication/          # Duplicate detection
│   │   └── knowledge-graph/        # Graph operations & search
│   ├── server/                # Transport implementations
│   │   ├── stdio-server.ts    # MCP STDIO transport
│   │   ├── http-server.ts     # Express HTTP server
│   │   ├── transport-manager.ts  # Shared tool logic
│   │   └── routes/            # HTTP endpoints
│   ├── shared/                # Shared infrastructure
│   │   ├── database/          # Prisma operations
│   │   ├── services/          # AI & embedding services
│   │   ├── types/             # TypeScript definitions
│   │   └── utils/             # Utilities
│   └── index.ts              # Entry point
├── prisma/
│   └── schema.prisma         # Database schema
├── examples/                 # Client examples
├── scripts/                  # Development scripts
└── tests/                    # Test files

开发命令

# Development workflow
pnpm run dev          # Development server with hot reload (STDIO only)
pnpm run dev:stdio    # STDIO transport only (traditional MCP)
pnpm run dev:http     # HTTP transport only (REST API + SSE)
pnpm run dev:dual     # Both transports simultaneously

# Production workflow
pnpm run build        # TypeScript compilation
pnpm run start        # Production server (STDIO only)
pnpm run start:http   # Production HTTP transport  
pnpm run start:dual   # Production dual transport

# Database operations
pnpm run db:push      # Push schema changes to database
pnpm run db:migrate   # Create new migration
pnpm run db:generate  # Generate Prisma client
pnpm run db:studio    # Open Prisma Studio GUI
pnpm run db:reset     # Reset database (caution: deletes all data)

# Code quality
pnpm run lint         # Biome linting
pnpm run format       # Biome formatting
pnpm run check        # Full check (lint + type check + tests)

# Testing
pnpm run test         # Run all Jest tests
pnpm run test:unit    # Unit tests only
pnpm run test:integration # Integration tests only
pnpm run test:pipeline # Pipeline-specific tests
pnpm run test:watch   # Run tests in watch mode
pnpm run test:coverage # Generate coverage report

# Performance testing
pnpm run benchmark    # Run performance benchmarks
pnpm run ai-isolation # Test AI provider isolation
pnpm run ai-extraction # Test extraction performance
pnpm run ai-embedding # Test embedding generation
pnpm run ai-conceptualization # Test concept generation
pnpm run ai-latency   # Test API latency

# Utilities
pnpm run server:inspect # Launch MCP Inspector for debugging
pnpm run mcp          # Direct MCP mode (alias for dev)
pnpm run watch        # Watch mode with tsx

生产环境的环境变量

# Required
DATABASE_URL=postgresql://user:pass@host:5432/db?sslmode=require
OPENAI_API_KEY=sk-...

# Production Settings
NODE_ENV=production
ENABLE_HTTP_TRANSPORT=true
ENABLE_STDIO_TRANSPORT=false

# Security
HTTP_CORS_ORIGINS=https://yourdomain.com
HTTP_RATE_LIMIT_MAX=100
HTTP_RATE_LIMIT_WINDOW=15

# Performance
DB_MAX_CONNECTIONS=20
BATCH_SIZE=64
SEARCH_TOP_K=20

# Monitoring
LOG_LEVEL=INFO
DIAGNOSTIC_MODE=false

部署平台

Vercel(注:Vercel是一个用于部署和托管静态网站及服务器端渲染应用的平台,此处直接保留原英文名称,因为其在中文语境中通常不直接翻译)

{
  "functions": {
    "api/index.js": {
      "maxDuration": 60
    }
  }
}

铁路

[deploy]
startCommand = "pnpm run start:http"

[build]
builder = "NIXPACKS"
buildCommand = "pnpm install && pnpm run build"

AWS Lambda

使用提供的处理程序包装器在 src/server/deploy-handlers.ts.

安全

最佳实践

  1. API密钥存储在环境变量中,切勿提交
  2. 数据库在生产环境中使用SSL连接
  3. CORS(跨源资源共享)配置特定的来源,避免使用通配符
  4. 速率限制实现每IP限制
  5. 输入验证所有输入均通过Zod模式验证
  6. SQL注入受Prisma ORM保护
  7. XSS 防护强制执行Content-Type头部

安全头部(HTTP模式)

服务器通过 Helmet 自动设置安全头部信息:

  • X-Content-Type-Options: nosniff
  • X-Frame-Options: DENY
  • X-XSS-Protection: 1; mode=block
  • Strict-Transport-Security (当使用HTTPS时)

性能调优

# Database
DB_MAX_CONNECTIONS=20        # Increase for high load
DB_CONNECTION_TIMEOUT=5000   # Milliseconds

# Embeddings
BATCH_SIZE=64               # Larger batches for throughput
EMBEDDING_DIMENSIONS=1536    # Or 3072 for large model

# Search
SEARCH_TOP_K=20             # Initial candidates for reranking
MIN_SCORE=0.7               # Similarity threshold

监测

  • 健康终点(或健康指标): /api/health
  • 指标端点: /api/metrics
  • 数据库中的令牌使用追踪
  • 请求时长记录

调试模式

启用详细日志记录:

LOG_LEVEL=DEBUG
DIAGNOSTIC_MODE=true
LOG_STACK_TRACE=true

贡献

  1. 为仓库创建分支(或“克隆仓库”)
  2. 创建一个特性分支(git checkout -b feature/amazing-feature)
  3. 按照我们的代码风格进行修改
  4. 为新功能添加测试
  5. 运行质量检查(pnpm run check)
  6. 提交带有描述性信息的提交
  7. 推送到你的分支副本(或:推送到你的fork)
  8. 提交一个拉取请求

______________________________________________________________________

Made with ❤️ by the Knowledge Graph MCP Team

目录标签

目录标签

知识图谱PostgreSQLClaude搜索TypeScript本地部署AI提取语义搜索概念化

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明token部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP