Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@RDF4J MCP ServerShow me a summary of the classes and properties in this knowledge graph"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
RDF4J MCP Server
Explore knowledge graphs with Claude - A Model Context Protocol (MCP) server that enables AI-powered exploration of RDF data and SPARQL querying.
Quick Demo
Try it out in under 2 minutes:
# 1. Clone and install
git clone https://github.com/your-org/rdf4j-mcp.git
cd rdf4j-mcp
uv sync # or: pip install -e .
# 2. Start RDF4J + load sample data
./examples/setup-demo.sh
# 3a. Run as local MCP server (stdio)
rdf4j-mcp --server-url http://localhost:8081/rdf4j-server --repository demo
# 3b. Or run as remote HTTP server
rdf4j-mcp-server --port 3000 --server-url http://localhost:8081/rdf4j-server --repository demoThen try these prompts with Claude:
"What classes and properties are in this knowledge graph?"
"Find all people and the projects they work on"
"Show me the project with the highest budget"
Installation
Prerequisites: Python 3.11+, Docker (for RDF4J)
git clone https://github.com/your-org/rdf4j-mcp.git
cd rdf4j-mcp
uv sync # or: pip install -e .Two Ways to Run
Command | Transport | Use Case |
| stdio | MCP client spawns locally (Claude Desktop, VS Code) |
| HTTP/SSE | Standalone remote server, multiple clients |
Option 1: Local Mode (stdio)
The MCP client spawns the server as a local process:
rdf4j-mcp --server-url http://localhost:8080/rdf4j-server --repository my-repoOption 2: Remote Mode (HTTP/SSE)
Run as a standalone HTTP server:
# Start the server
rdf4j-mcp-server --port 3000 \
--server-url http://localhost:8080/rdf4j-server \
--repository my-repo
# Or with environment variables
export RDF4J_MCP_RDF4J_SERVER_URL=http://localhost:8080/rdf4j-server
export RDF4J_MCP_DEFAULT_REPOSITORY=my-repo
rdf4j-mcp-server --port 3000
# Or with uvicorn (production)
uvicorn rdf4j_mcp.main:app --host 0.0.0.0 --port 3000 --workers 4Endpoints:
GET /sse- SSE endpoint for MCP clientsGET /health- Health checkGET /info- Server configuration
Client Configuration
Claude Desktop
Config file locations:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Local mode (stdio):
{
"mcpServers": {
"rdf4j": {
"command": "rdf4j-mcp",
"args": ["--server-url", "http://localhost:8080/rdf4j-server", "--repository", "my-repo"]
}
}
}Remote mode (HTTP):
{
"mcpServers": {
"rdf4j": {
"url": "http://your-server:3000/sse"
}
}
}VS Code
Create .vscode/mcp.json in your workspace:
Local mode:
{
"servers": {
"rdf4j": {
"command": "rdf4j-mcp",
"args": ["--server-url", "http://localhost:8080/rdf4j-server", "--repository", "my-repo"]
}
}
}Remote mode:
{
"servers": {
"rdf4j": {
"url": "http://your-server:3000/sse"
}
}
}For GitHub Copilot, use @mcp in chat:
@mcp What classes are in the knowledge graph?Features
MCP Tools
Tool | Description |
| Execute SELECT queries, returns JSON |
| Execute CONSTRUCT/DESCRIBE, returns Turtle |
| Execute ASK queries, returns boolean |
| Get all triples about an IRI |
| Find classes by name pattern |
| Find properties by pattern/domain/range |
| Find instances of a class |
| Ontology overview with statistics |
| List available repositories |
| Get namespace prefix mappings |
| Statement/class/property counts |
| Switch active repository |
MCP Resources
URI | Description |
| List of repositories |
| Schema summary |
| Namespace prefixes |
| Repository statistics |
MCP Prompts
Prompt | Description |
| Guided exploration with schema context |
| Natural language to SPARQL |
| Explain classes and relationships |
Configuration
CLI Options
rdf4j-mcp (stdio mode):
--server-url URL RDF4J server URL (default: http://localhost:8080/rdf4j-server)
--repository ID Default repository ID
--debug Enable debug loggingrdf4j-mcp-server (HTTP mode):
--host HOST Bind address (default: 0.0.0.0)
--port PORT Listen port (default: 3000)
--server-url URL RDF4J server URL
--repository ID Default repository ID
--reload Auto-reload for development
--debug Enable debug loggingEnvironment Variables
All use the RDF4J_MCP_ prefix:
Variable | Default | Description |
|
| RDF4J server URL |
| - | Default repository ID |
|
| Query timeout (seconds) |
|
| Default query LIMIT |
|
| Maximum query LIMIT |
Running RDF4J Server
Using Docker:
docker run -d -p 8080:8080 eclipse/rdf4j-workbenchThen create a repository at http://localhost:8080/rdf4j-workbench.
Or use the demo setup script which handles everything:
./examples/setup-demo.shDevelopment
uv sync --dev
# Run tests
pytest
# Lint and format
ruff check src tests
ruff format src tests
# Type check
ty check srcLicense
MIT
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.