SPARQL查询服务器

用于Apache Jena Fuseki的Model Context Protocol (MCP)服务器,支持执行SPARQL查询和检索SAP会计数据。

  • by eric-jini
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 eric-jini/poc_knowledge_mcp_server

使用说明

Fuseki MCP服务器

用于Apache Jena Fuseki的Model Context Protocol(MCP)服务器。 您可以与Claude Desktop通信,运行SPARQL查询并查看SAP会计数据。

安装

cd /Users/eric2020/Documents/ws_python/sap_snowflake_to_jena/mcp_server_fuseki

# 가상환경 생성
python3 -m venv venv
source venv/bin/activate

# 의존성 설치
pip install -r requirements.txt

执行

# 가상환경 활성화
source venv/bin/activate

# MCP 서버 시작
python server.py

Claude桌面设置

在Claude Desktop的配置文件中添加以下内容:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "fuseki": {
      "command": "/Users/eric2020/Documents/ws_python/sap_snowflake_to_jena/mcp_server_fuseki/venv/bin/python",
      "args": [
        "/Users/eric2020/Documents/ws_python/sap_snowflake_to_jena/mcp_server_fuseki/server.py"
      ]
    }
  }
}

可用工具

1.sparql_query

运行SPARQL SELECT查询

Tool: sparql_query
Arguments: {"query": "SELECT * WHERE { ?s ?p ?o } LIMIT 10"}

2.稀疏更新

运行SPARQL UPDATE查询

Tool: sparql_update
Arguments: {"query": "INSERT DATA { ... }"}

3.获取数据_信息

查询数据集统计信息

Tool: get_dataset_info

4.国家三级

查看完整的树计数

Tool: count_triples

5.查找文档

搜索SAP会计报表

Tool: find_documents
Arguments: {
  "company_code": "1000",
  "fiscal_year": "2025",
  "document_type": "AB",
  "limit": 10
}

6.获取文档详细信息

查询特定发票的详细信息

Tool: get_document_details
Arguments: {
  "company_code": "1000",
  "fiscal_year": "2025",
  "document_number": "0100106721"
}

资源

  • fuseki://sap/stats:数据集统计
  • fuseki://sap/namespaces:命名空间列表

示例查询

每月发票数量

PREFIX sap: <http://fnf.co.kr/ontology/sap#>

SELECT ?period (COUNT(?doc) as ?count)
WHERE {
  ?doc a sap:AccountingDocument .
  ?doc sap:period ?period .
}
GROUP BY ?period
ORDER BY ?period

各公司的总金额

PREFIX sap: <http://fnf.co.kr/ontology/sap#>

SELECT ?company (SUM(?amount) as ?total)
WHERE {
  ?doc a sap:AccountingDocument .
  ?doc sap:companyCode ?company .
  ?doc sap:hasLineItem ?line .
  ?line sap:amountLocalCurrency ?amount .
}
GROUP BY ?company

设置

服务器设置为 server.py 可以在顶部修改:

FUSEKI_BASE_URL = "http://localhost:3030"
DATASET_NAME = "sap"

故障排除

Fuseki服务器连接失败

  • 验证Fuseki服务器是否正在运行: curl http://localhost:3030/$/ping
  • 验证数据集是否存在: curl http://localhost:3030/$/datasets

检查MCP服务器日志

服务器以标准输出输出日志。可以在Claude Desktop日志中查看。

poc_knowledge_mcp_server