元数据与知识图谱检索服务

一个基于Python的服务应用,提供从SharePoint检索元数据和通过语义相似性搜索从Neo4j知识图谱中检索实体的功能。

  • by JanithSilva
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 janithsilva/mcp-server

使用说明

MCP服务器

一个基于Python的服务器应用程序,它提供了使用语义相似性搜索从SharePoint检索元数据和从Neo4j知识图检索实体的工具。

特性

  • 元数据检索:从SharePoint的“文档”库中获取结构化元数据
  • 实体检索:使用语义相似性查询Neo4j知识图,以查找相关实体及其关系
  • FastMCP集成:基于FastMCP框架构建,用于工具管理和执行

先决条件

  • Python 3.x
  • Neo4j数据库
  • SharePoint访问凭据
  • OpenAI API密钥(用于语义搜索)

安装

  1. 克隆存储库:
git clone <repository-url>
cd mcp-server
  1. 创建并激活虚拟环境:
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. 安装依赖项:
pip install -r requirements.txt
  1. 配置环境变量: 创建一个 .env 包含以下变量的文件:
SHAREPOINT_URL=
SHAREPOINT_USERNAME=
SHAREPOINT_PASSWORD=
SHAREPOINT_LIBRARY_NAME=

NEO4J_URI=
NEO4J_USER=
NEO4J_PASSWORD=

EMBEDDING_MODEL_ENDPOINT=
EMBEDDING_MODEL_KEY=
EMBEDDING_MODEL_API_VERSION=
EMBEDDING_MODEL_DEPLOYMENT_NAME=
EMBEDDING_MODEL_CHUNK_SIZE=
EMBEDDING_MODEL_DIMENSION=
EMBEDDING_MODEL_CHUNK_OVERLAP=

用法

  1. 启动服务器:
python mcp_server.py
  1. 服务器提供两个主要工具:
    • metadata_retrieve:从SharePoint检索结构化元数据
    • entity_retrieve:使用语义相似度查询知识图

项目结构

.
├── mcp_server.py          # Main server application
├── settings.py            # Configuration management
├── services/             # Service implementations
│   ├── graph_store.py    # Neo4j graph operations
│   └── sharepoint.py     # SharePoint integration
├── requirements.txt      # Project dependencies
└── .env                  # Environment variables

依赖项

  • langchain mcp适配器
  • mcp[cli]
  • langchain_openai
  • 松果
  • 语言链
  • langchain_neo4j
  • office365 rest python客户端