A Model Context Protocol (MCP) server that provides conversational interface for the exploration and analysis of RDF (Turtle) based Knowledge Graph in Local File mode or SPARQL Endpoint mode.
What is emekaokoye mcp rdf explorer
RDF Explorer v1.0.0
Overview
A Model Context Protocol (MCP) server that provides conversational interface for the exploration and analysis of RDF (Turtle) based Knowledge Graph in Local File mode or SPARQL Endpoint mode. This server facilitates communication between AI applications (hosts/clients) and RDF data, making graph exploration and analyzing graph data through SPARQL queries. A perfect tool for knowledge graph research and AI data preparation.
Components
Tools
The server implements SPARQL queries and search functionality:
-
execute_on_endpoint
- Execute a SPARQL query directly on an external endpoint
- Input:
endpoint
(str): The SPARQL endpoint URL to query.query
(str): The SPARQL query to execute.ctx
(Context): The FastMCP context object.
- Returns: Query results as a newline-separated string, or an error message.
-
sparql_query
- Execute a SPARQL query on the current graph or active external endpoint
- Input:
query
(str): The SPARQL query to execute.ctx
(Context): The FastMCP context object.use_service
(bool): Whether to use a SERVICE clause for federated queries in local mode (default: True).
- Returns: Query results as a newline-separated string, or an error message.
-
graph_stats
- Calculate and return statistics about the graph in JSON format
- Input:
ctx
(Context): The FastMCP context object.
- Returns: JSON string containing graph statistics (e.g., triple count, unique subjects).
-
count_triples
- Count triples in the graph. Disabled in SPARQL Endpoint Mode; use a custom prompt instead.
- Input:
ctx
(Context): The FastMCP context object.
- Returns: Number of triples as a string, or an error message.
-
full_text_search
- Perform a full-text search on the graph or endpoint, avoiding proprietary syntax.
- Input:
search_term
(str): The term to search for.ctx
(Context): The FastMCP context object.
- Returns: Search results as a newline-separated string, or an error message.
-
health_check
- Check the health of the triplestore connection.
- Input:
ctx
(Context): The FastMCP context object.
- Returns: 'Healthy' if the connection is good, 'Unhealthy: ' otherwise.
-
get_mode
- Get the current mode of RDF Explorer. Useful for knowledge graph and semantic tech users to verify data source.
- Input:
ctx
(Context): The FastMCP context object.
- Returns: A message indicating the mode and dataset or endpoint.
Resources
The server exposes the following resources:
-
schema://all
: Retrieve schema information (classes and properties) from the graph.- Returns: A newline-separated string of schema elements (classes and properties).
-
queries://{template_name}
: Retrieve a predefined SPARQL query template by name.- Returns: The SPARQL query string or 'Template not found'.
-
explore://{query_name}
: Execute an exploratory SPARQL query by name and return results in JSON.query_name
(str): The name of the exploratory query (e.g., 'classes', 'relationships/URI').- Returns: JSON string of query results.
-
explore://report
: Generate a Markdown report of exploratory queries.- Returns: A Markdown-formatted report string.
Prompts
The server exposes the following prompts:
-
analyze_graph_structure
: Initiate an analysis of the graph structure with schema data.- Returns: A list of messages to guide graph structure analysis.
-
find_relationships
: Generate a SPARQL query to find relationships for a given subject.- Returns: A SPARQL query string to find relationships.
-
text_to_sparql
: Convert a text prompt to a SPARQL query and execute it, with token limit checks.prompt
(str): The text prompt to convert to SPARQL.- Returns: Query results with usage stats, or an error message.
Setup
Configuration
Installing on Claude Desktop
Before starting make sure Claude Desktop is installed.
-
Go to: Settings > Developer > Edit Config
-
Add the following to your
claude_desktop_config.json
: On MacOS:~/Library/Application Support/Claude/claude_desktop_config.json
On Windows:%APPDATA%/Claude/claude_desktop_config.json
To use with a local RDF Turtle file, use this version with --triple-file
args
{
"mcpServers": {
"rdf_explorer": {
"command": "C:\\path\\to\\venv\\Scripts\\python.exe",
"args": ["C:\\path\\to\\server.py", "--triple-file", "your_file.ttl"]
}
}
}
To use with a SPARQL Endpoint, use this version with --sparql-endpoint
args
{
"mcpServers": {
"rdf_explorer": {
"command": "C:\\path\\to\\venv\\Scripts\\python.exe",
"args": ["C:\\path\\to\\server.py", "--sparql-endpoint", "https://example.com/sparql"]
}
}
}
-
Restart Claude Desktop and start querying and exploring graph data.
-
Prompt: "what mode is RDF Explorer running?"
Usage Examples
Here are examples of how you can explore RDF data using natural language:
Querying Data in Local File Mode
You can ask questions like:
- "Show me all employees in the Sales department"
- "Find the top 5 oldest customers"
- "Who has purchased more than 3 products in the last month?"
- "List all entities"
- "Using the DBpedia endpoint, list 10 songs by Michael Jackson"
- "Using the Wikidata endpoint, list 5 cities"
- "count the triples"
- "analyze the graph structure"
- "Select ..."
- "search '{text}' "
- "find relationships of '{URI}'"
- "what mode is RDF Explorer running?"
Querying Data in SPARQL Endpoint Mode
You can ask questions like:
- "Using the DBpedia endpoint, list 10 songs by Michael Jackson"
- "Using the Wikidata endpoint, list 5 cities"
- "Select ..."
- "search '{text}' "
- "find relationships of '{URI}'"
- "what mode is RDF Explorer running?"
Development
# clone the repository
git clone https://github.com/emekaokoye/mcp-rdf-explorer.git
cd mcp-rdf-explorer
# setup a virtual environment
python -m venv venv
source venv`/bin/activate`
# windows: venv\Scripts\activate
# install development dependencies
pip install -r requirements.txt
# run tests
pytest test_rdf_explorer.py -v
License
This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the license file in the project repository.
Leave a Comment
Frequently Asked Questions
What is MCP?
MCP (Model Context Protocol) is an open protocol that standardizes how applications provide context to LLMs. Think of MCP like a USB-C port for AI applications, providing a standardized way to connect AI models to different data sources and tools.
What are MCP Servers?
MCP Servers are lightweight programs that expose specific capabilities through the standardized Model Context Protocol. They act as bridges between LLMs like Claude and various data sources or services, allowing secure access to files, databases, APIs, and other resources.
How do MCP Servers work?
MCP Servers follow a client-server architecture where a host application (like Claude Desktop) connects to multiple servers. Each server provides specific functionality through standardized endpoints and protocols, enabling Claude to access data and perform actions through the standardized protocol.
Are MCP Servers secure?
Yes, MCP Servers are designed with security in mind. They run locally with explicit configuration and permissions, require user approval for actions, and include built-in security features to prevent unauthorized access and ensure data privacy.
Related MCP Servers
chrisdoc hevy mcp
sylphlab pdf reader mcp
An MCP server built with Node.js/TypeScript that allows AI agents to securely read PDF files (local or URL) and extract text, metadata, or page counts. Uses pdf-parse.
aashari mcp server atlassian bitbucket
Node.js/TypeScript MCP server for Atlassian Bitbucket. Enables AI systems (LLMs) to interact with workspaces, repositories, and pull requests via tools (list, get, comment, search). Connects AI directly to version control workflows through the standard MCP interface.
aashari mcp server atlassian confluence
Node.js/TypeScript MCP server for Atlassian Confluence. Provides tools enabling AI systems (LLMs) to list/get spaces & pages (content formatted as Markdown) and search via CQL. Connects AI seamlessly to Confluence knowledge bases using the standard MCP interface.
prisma prisma
Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB
Zzzccs123 mcp sentry
mcp sentry for typescript sdk
zhuzhoulin dify mcp server
zhongmingyuan mcp my mac
zhixiaoqiang desktop image manager mcp
MCP 服务器,用于管理桌面图片、查看详情、压缩、移动等(完全让Trae实现)
zhixiaoqiang antd components mcp
An MCP service for Ant Design components query | 一个减少 Ant Design 组件代码生成幻觉的 MCP 服务,包含系统提示词、组件文档、API 文档、代码示例和更新日志查询
Submit Your MCP Server
Share your MCP server with the community
Submit Now