Skip to main content
Glama

MCP Server for Apache Jena

MCP Server for Apache Jena

A Model Context Protocol (MCP) server that connects AI agents to Apache Jena for SPARQL query capabilities.

Overview

This project implements an MCP server that allows AI agents (such as Cursor, Claude for Cline, or Claude Desktop) to access and query RDF data stored in Apache Jena. The server provides tools for executing SPARQL queries and updates against a Jena Fuseki server.

Features

  • Execute SPARQL queries against a Jena Fuseki server
  • Execute SPARQL updates to modify RDF data
  • List available named graphs in the dataset
  • HTTP Basic authentication support for Jena Fuseki
  • Compatible with the Model Context Protocol

Prerequisites

  • Node.js (v16 or later)
  • Apache Jena Fuseki server running with your RDF data loaded
  • An AI agent that supports the Model Context Protocol (e.g., Cursor, Claude for Cline)

Installation

  1. Clone this repository:
    git clone https://github.com/ramuzes/mcp-jena.git cd mcp-jena
  2. Install dependencies:
    npm install
  3. Build the TypeScript code:
    npm run build

Usage

Run the server with default settings (localhost:3030 for Jena, 'ds' for dataset):

npm start

Or specify custom Jena endpoint, dataset, and authentication credentials:

npm start -- --endpoint http://your-jena-server:3030 --dataset your_dataset --username your_username --password your_password

You can also use short flags:

npm start -- -e http://your-jena-server:3030 -d your_dataset -u your_username -p your_password

For development mode with automatic transpilation:

npm run dev:transpile -- -e http://your-jena-server:3030 -d your_dataset -u your_username -p your_password

Docker

You can run the MCP Jena server using Docker:

Building the Docker image

docker build -t mcp-jena .

Running with Docker

docker run -e JENA_FUSEKI_URL=http://your-jena-server:3030 -e DEFAULT_DATASET=your_dataset mcp-jena

Available Tools

This MCP server provides the following tools:

  1. execute_sparql_query - Execute a SPARQL query against the Jena dataset
  2. execute_sparql_update - Execute a SPARQL update query to modify the dataset
  3. list_graphs - List all available named graphs in the dataset

Environment Variables

You can also configure the server using environment variables:

  • JENA_FUSEKI_URL: URL of your Jena Fuseki server (default: http://localhost:3030)
  • DEFAULT_DATASET: Default dataset name (default: ds)
  • JENA_USERNAME: Username for HTTP Basic authentication to Jena Fuseki
  • JENA_PASSWORD: Password for HTTP Basic authentication to Jena Fuseki
  • PORT: Port for the MCP server (for HTTP transport, default: 8080)
  • API_KEY: API key for MCP server authentication

Example SPARQL Queries

Basic SELECT query:

SELECT ?subject ?predicate ?object WHERE { ?subject ?predicate ?object } LIMIT 10

Insert data with UPDATE:

PREFIX ex: <http://example.org/> INSERT DATA { ex:subject1 ex:predicate1 "object1" . ex:subject2 ex:predicate2 42 . }

Query a specific named graph:

SELECT ?subject ?predicate ?object FROM NAMED <http://example.org/graph1> WHERE { GRAPH <http://example.org/graph1> { ?subject ?predicate ?object } } LIMIT 10

Resources

-
security - not tested
A
license - permissive license
-
quality - not tested

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

A Model Context Protocol server that connects AI agents to Apache Jena, enabling them to execute SPARQL queries and updates against RDF data stored in Jena Fuseki.

  1. Overview
    1. Features
      1. Prerequisites
        1. Installation
          1. Usage
            1. Docker
              1. Building the Docker image
              2. Running with Docker
            2. Available Tools
              1. Environment Variables
                1. Example SPARQL Queries
                  1. Basic SELECT query:
                  2. Insert data with UPDATE:
                  3. Query a specific named graph:
                2. Resources

                  Related MCP Servers

                  • -
                    security
                    F
                    license
                    -
                    quality
                    A server implementation that allows AI models to interact with Jira through the Model Context Protocol, enabling tasks like JQL searches and retrieving issue details.
                    Last updated -
                    Python
                  • A
                    security
                    A
                    license
                    A
                    quality
                    A Model Context Protocol server that enables AI agents to interact with local Logseq knowledge graphs, supporting operations like creating/editing pages and blocks, searching content, and managing journal entries.
                    Last updated -
                    13
                    7
                    Python
                    MIT License
                    • Apple
                    • Linux
                  • -
                    security
                    A
                    license
                    -
                    quality
                    A Model Context Protocol server that enhances AI agents by providing deep semantic understanding of codebases, enabling more intelligent interactions through advanced code search and contextual awareness.
                    Last updated -
                    40
                    Python
                    MIT License
                    • Apple
                  • -
                    security
                    F
                    license
                    -
                    quality
                    Model Context Protocol server that allows AI assistants to interact with Jira, supporting operations like creating tickets and fetching project information directly from the cursor.
                    Last updated -
                    Python

                  View all related MCP servers

                  MCP directory API

                  We provide all the information about MCP servers via our MCP API.

                  curl -X GET 'https://glama.ai/api/mcp/v1/servers/ramuzes/mcp-jena'

                  If you have feedback or need assistance with the MCP directory API, please join our Discord server