GraphDB

Proporciona acceso de solo lectura a un repositorio de Ontotext GraphDB.

Documentación

MseeP.ai Security Assessment Badge

Servidor MCP GraphDB

Un servidor de Protocolo de Contexto de Modelo que proporciona acceso de solo lectura a Ontotext GraphDB. Este servidor permite a los LLM explorar grafos RDF y ejecutar consultas SPARQL contra una instancia de GraphDB.

Componentes

Herramientas

  • sparqlQuery

    • Ejecuta consultas SPARQL contra el repositorio GraphDB conectado
    • Entrada:
      • query (cadena): La consulta SPARQL a ejecutar
      • graph (cadena, opcional): IRI de grafo específico a apuntar
      • format (cadena, opcional): Formato de respuesta (json, xml, csv)
    • Todas las consultas se ejecutan en modo de solo lectura
  • listGraphs

    • Lista todos los grafos disponibles en el repositorio
    • No se requieren parámetros de entrada

Recursos

El servidor proporciona múltiples vistas de los datos del repositorio:

  • Class List (graphdb://<host>/repository/<repo>/classes)

    • Lista todas las clases RDF encontradas en el repositorio con conteos
  • Predicates (graphdb://<host>/repository/<repo>/predicates)

    • Lista todos los predicados (propiedades) con conteos de uso
  • Statistics (graphdb://<host>/repository/<repo>/stats)

    • Proporciona conteos de sujetos, predicados, objetos y tripletas
  • Sample Data (graphdb://<host>/repository/<repo>/sample)

    • Muestra una muestra de tripletas del repositorio
  • Graph Content (graphdb://<host>/repository/<repo>/graph/<graphUri>)

    • Proporciona datos de muestra de grafos específicos junto con metadatos

Configuración

Puede configurar el servidor usando variables de entorno creando un archivo .env:

GRAPHDB_ENDPOINT=http://localhost:7200
GRAPHDB_REPOSITORY=myRepository
GRAPHDB_USERNAME=username
GRAPHDB_PASSWORD=password

Alternativamente, puede proporcionar el endpoint y el repositorio como argumentos de línea de comandos:

node dist/index.js http://localhost:7200 myRepository

Los argumentos de línea de comandos tienen prioridad sobre las variables de entorno.

Uso con Claude Desktop

Para usar este servidor con la aplicación Claude Desktop, agregue la siguiente configuración a la sección "mcpServers" de su claude_desktop_config.json:

{
  "mcpServers": {
    "graphdb": {
      "command": "node",
      "args": [
        "/path/to/mcp-server-graphdb/dist/index.js"
      ],
      "env": {
        "GRAPHDB_ENDPOINT": "http://localhost:7200",
        "GRAPHDB_REPOSITORY": "myRepository",
        "GRAPHDB_USERNAME": "username",
        "GRAPHDB_PASSWORD": "password"
      }
    }
  }
}

Reemplace los valores con su configuración específica de GraphDB.

Instalación

# Clone the repository
git clone https://github.com/keonchennl/mcp-server-graphdb.git
cd mcp-server-graphdb

# Install dependencies
yarn install

# Build the project
yarn build

Ejemplos de consultas SPARQL

Aquí hay algunos ejemplos de consultas SPARQL que puede ejecutar con este servidor:

  1. Listar todas las clases en la ontología:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?class ?label
WHERE {
  { ?class a rdfs:Class } UNION { ?class a owl:Class }
  OPTIONAL { ?class rdfs:label ?label }
}
ORDER BY ?class
  1. Listar todas las propiedades para una clase específica:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?property ?label ?range
WHERE {
  ?property rdfs:domain <http://example.org/YourClass> .
  OPTIONAL { ?property rdfs:label ?label }
  OPTIONAL { ?property rdfs:range ?range }
}
ORDER BY ?property
  1. Contar instancias por clase:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?class (COUNT(?instance) AS ?count)
WHERE {
  ?instance a ?class
}
GROUP BY ?class
ORDER BY DESC(?count)

Licencia

Este servidor MCP está licenciado bajo la Licencia GPL-3.0. Esto significa que es libre de usar, modificar y distribuir el software, sujeto a los términos y condiciones de la Licencia GNU GPL-3.0.