Token导航 LogoToken导航TokenDH.com
Sejmofil Neo4j MCP logo
搜索检索stdio官方级别未说明来源级核验

Sejmofil Neo4j MCP

MCP Server

一个基于Neo4j图数据库的波兰议会数据查询服务,提供语义搜索、图形探索、立法过程跟踪、议员活动查询等功能。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
PythonClaude搜索Claude

安装说明

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

作者 / 组织

miskibin

提供方

miskibin

最后核验

2026/5/17 20:19

快速接入

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

命令预览

pip install -e .

详细介绍

Sejmofil Neo4j MCP 服务器

用于从Neo4j图数据库查询波兰议会数据的模型上下文协议服务器。

📚 书籍 快速入门指南 |

特点/功能

  • 🔍(放大镜图标,通常表示搜索或查看细节) 语义搜索使用AI驱动的语义搜索并结合灵活的状态过滤功能查找立法文件
  • 🔗 图探索探索数据库中任意节点之间的连接和关系
  • 📊 表格/数据图表 过程跟踪检查立法进程的状态(进行中/已完成)
  • 👥 代表“人们”或“人群”的意思。 MP(议员/会员等)活动查询国会议员的立法活动
  • 🏛️ 可以翻译为“建筑”或具体指“神庙、宫殿等大型建筑”,根据上下文可能有所不同。在这里,作为一个表情符号,它通常用来表示与建筑或历史遗迹相关的概念。 俱乐部统计数据获取关于议会俱乐部(政党)的全面统计数据
  • 🏷️(标签) 主题分析查找相似主题并获取统计数据
  • 📝 详细信息获取关于印刷品、工艺和议员(或“多功能端口”,根据上下文MP可能的不同含义,此处提供两种可能的翻译)的全面详细信息

安装

选项1:使用uv(推荐用于开发)

# Install dependencies using uv
uv sync

# Or with pip
pip install -e .

选项2:使用Docker(推荐用于生产环境)

# Build the Docker image
docker build -t sejmofil-neo4j-mcp .

# Or use docker-compose
docker-compose build

请见 以获取详细的Docker使用说明。

配置

创建一个 .env 文件(从...复制 .env.example):

NEO4J_HOST=bolt+s://neo.msulawiak.pl:7687
NEO4J_USER=neo4j
NEO4J_PASSWORD=your_password
OPENAI_API_KEY=your_openai_key  # Optional, for semantic search
EMBEDDINGS_MODEL=text-embedding-3-small

# API Key Authorization (optional but recommended)
API_KEY=your-secret-api-key

API密钥授权

服务器支持简单的API密钥授权:

  • API_KEY一个用于授权的单一共享API密钥
  • 如果未设置,则禁用授权(不建议在生产环境中使用)

示例:

# Set the API key
API_KEY=my-secret-key-12345

# All users use the same key

运行服务器

使用 Docker(生产环境推荐)

# Using docker-compose (easiest)
docker-compose up

# Or run the container directly
docker run -it --rm \
  -p 8000:8000 \
  -e NEO4J_HOST=bolt+s://neo.msulawiak.pl:7687 \
  -e NEO4J_USER=neo4j \
  -e NEO4J_PASSWORD=your_password \
  -e API_KEY=your-secret-key \
  -v $(pwd)/logs:/app/logs \
  sejmofil-neo4j-mcp:latest

服务器使用SSE(服务器发送事件)传输协议,并监听8000端口。

使用MCP Inspector(推荐用于测试)

# Install MCP Inspector globally if you haven't
npx @modelcontextprotocol/inspector

# Run the server with inspector
uv run mcp dev sejmofil_mcp/server.py

检查器将在您的浏览器中打开。请尝试以下示例工具调用:

// Example 1: Search active prints about taxes
{
  "name": "search_prints",
  "arguments": {
    "query": "podatki",
    "status": "active",
    "limit": 5
  }
}

// Example 2: Get print details
{
  "name": "get_print_details",
  "arguments": {
    "print_number": "1"
  }
}

// Example 3: Find MP by name
{
  "name": "find_mp_by_name",
  "arguments": {
    "name": "Tusk"
  }
}

// Example 4: Explore connections of a topic
{
  "name": "explore_node",
  "arguments": {
    "node_type": "Topic",
    "node_id": "Podatki",
    "limit": 10
  }
}

// Example 5: Get club statistics
{
  "name": "get_club_statistics",
  "arguments": {
    "club_name": "PiS"
  }
}

直接运行

uv run python -m sejmofil_mcp

测试

快速连接测试

uv run python test_connection.py

测试嵌入(需要OPENAI_API_KEY)

uv run python test_embeddings.py

测试所有工作流

uv run python test_workflows.py

全面的调试测试

uv run python debug_queries.py

可用工具

1. search_prints

按主题或关键词搜索议会印刷品(立法文件)。

参数:

  • query (字符串): 用波兰语搜索的查询词(例如,“podatki”(税)、“obrona”(防御)、“energia odnawialna”(可再生能源))
  • limit (int): 要返回的最大结果数(默认:10,最大:50)
  • status (字符串): 按状态过滤 - 'active'(当前处理中),'finished'(已发布/已撤回),或 'all'(默认:'all')

示例:

search_prints("podatki", status="active") - finds active tax-related prints
search_prints("obrona narodowa") - finds all defense prints
search_prints("energia", status="finished") - finds completed energy prints

2. explore_node

探索数据库中任意节点的所有连接(邻居)。

参数:

  • node_type (str): 节点类型 - '人物', '打印', '主题', '流程', '俱乐部', '委员会'
  • node_id (str): 节点标识符(人物:身份证号,打印件:打印件编号,主题:主题名称,流程:流程编号,俱乐部:俱乐部名称,委员会:委员会代码)
  • limit (int): 每种关系类型显示的最大邻居数(默认:50)

示例:

explore_node("Person", "12345") - shows all connections for MP with ID 12345
explore_node("Print", "1234") - shows authors, topics, processes for print 1234
explore_node("Topic", "Podatki") - shows all prints related to tax topic
explore_node("Club", "PiS") - shows members and activity of PiS party

3. get_print_details

获取特定打印件的全面信息。

参数:

  • print_number (str): 打印数字(例如,“1234”)

返回值: 完整的元数据、作者、主题、组织、当前阶段、评论

4. get_process_status

检查立法程序是正在进行中还是已经结束。

参数:

  • process_number (字符串): 进程编号

返回值: 状态(进行中/已完成)、当前阶段、所有带日期的阶段

5. find_mp_by_name

按姓名查找国会议员。

参数:

  • name (字符串):议员姓名或姓名部分

返回值: 包含俱乐部和角色信息的匹配议员名单

6. get_mp_activity

获取某位议员的立法活动信息。

参数:

  • person_id (int): 议员的身份证号(或议员编号)

返回值: 撰写的著作、发表的演讲、委员会成员身份

7. get_similar_topics

查找语义相似的主题。

参数:

  • topic_name (str): 主题名称
  • limit (int): 最大结果数(默认:5)

返回值: 具有相似度评分的相似主题

8. get_topic_statistics

获取关于议会议题的统计数据。

参数:

  • topic_name (str): 主题名称

返回值: 总印数,活跃印数,完成印数

9. get_club_statistics

获取有关议会俱乐部(政党/团体)的全面统计数据。

参数:

  • club_name (str): 要获取统计数据的俱乐部名称(例如,'PiS','Platforma Obywatelska','Lewica')

返回值: 包括会员情况、立法活动、投票、发言以及委员会参与在内的统计数据

10. list_clubs

列出所有议会俱乐部(政治党派/团体)。

返回值: 按会员数量排序的所有俱乐部列表,包含会员总数及活跃会员信息

11. search_all

搜索所有实体类型。

参数:

  • query (字符串):波兰语的搜索查询
  • limit (int): 每类结果数量(默认:10)

返回值: 符合查询条件的印花税票和议员(或:符合查询条件的印刷品和议员)

建筑学

sejmofil_mcp/
├── __init__.py          # Package initialization
├── __main__.py          # Entry point
├── server.py            # MCP server with tool definitions
├── config.py            # Configuration from environment
├── neo4j_client.py      # Neo4j database client
├── embeddings.py        # OpenAI embeddings service
├── models.py            # Pydantic data models
└── queries.py           # Cypher query service

示例查询

搜索关于税收的印刷品(仅限活跃状态)

search_prints(query="podatki", status="active", limit=5)

获取特定打印的详细信息

get_print_details(print_number="1234")

探索一个话题的所有关联

explore_node(node_type="Topic", node_id="Podatki", limit=50)

检查某个进程是否仍在运行

get_process_status(process_number="567")

查找议员及其活动

# First find by name
mps = find_mp_by_name(name="Kowalski")

# Then get their activity
activity = get_mp_activity(person_id=mps[0].id)

获取议会俱乐部的统计数据

get_club_statistics(club_name="PiS")

列出所有议会俱乐部

list_clubs()

数据库模式

服务器查询Neo4j数据库,其中包含以下主要实体:

  • 打印 - 议会文件(druki sejmowe,直译为“议会印刷品”)
  • 过程 - 立法程序
  • 舞台 - 处理阶段
  • - 议会议员
  • 俱乐部 - 议会俱乐部(政治党派/团体)
  • 主题 - 主题类别
  • 组织 - 机构
  • 委员会 - 议会委员会
  • 投票 - 票选记录

记录日志

日志写入位置为:

  • 控制台(INFO 级别)
  • logs/sejmofil_mcp_{time}.log (调试级别,每日轮转)
  • logs/debug_{time}.log (用于调试脚本)

与Claude桌面版的集成

添加到Claude桌面配置:

没有Docker

{
  "mcpServers": {
    "sejmofil": {
      "command": "uv",
      "args": [
        "--directory",
        "E:\\neo4j-mcp",
        "run",
        "python",
        "-m",
        "sejmofil_mcp"
      ],
      "env": {
        "API_KEY": "your-api-key-here"
      }
    }
  }
}

使用 Docker

{
  "mcpServers": {
    "sejmofil": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-p",
        "8000:8000",
        "-e",
        "NEO4J_HOST=bolt+s://neo.msulawiak.pl:7687",
        "-e",
        "NEO4J_USER=neo4j",
        "-e",
        "NEO4J_PASSWORD=your_password",
        "-e",
        "API_KEY=your-api-key",
        "sejmofil-neo4j-mcp:latest"
      ]
    }
  }
}

许可证

麻省理工学院(MIT)

作者

为Sejmofil.pl打造

目录标签

目录标签

PythonClaude搜索议会数据本地部署图数据库语义搜索立法分析政治统计

支持客户端

Claude

接入字段

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

stdio

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

api-key

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdioapi-key部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP