GraphDB

Fornece acesso somente leitura a um repositório Ontotext GraphDB.

Documentação

MseeP.ai Security Assessment Badge

Servidor MCP GraphDB

Um servidor Model Context Protocol que fornece acesso somente leitura ao Ontotext GraphDB. Este servidor permite que LLMs explorem grafos RDF e executem consultas SPARQL contra uma instância GraphDB.

Componentes

Ferramentas

  • sparqlQuery

    • Executa consultas SPARQL contra o repositório GraphDB conectado
    • Entrada:
      • query (string): A consulta SPARQL a ser executada
      • graph (string, opcional): IRI do grafo específico para alvo
      • format (string, opcional): Formato de resposta (json, xml, csv)
    • Todas as consultas são executadas em modo somente leitura
  • listGraphs

    • Lista todos os grafos disponíveis no repositório
    • Nenhum parâmetro de entrada é necessário

Recursos

O servidor fornece várias visões dos dados do repositório:

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

    • Lista todas as classes RDF encontradas no repositório com contagens
  • Predicates (graphdb://<host>/repository/<repo>/predicates)

    • Lista todos os predicados (propriedades) com contagens de uso
  • Statistics (graphdb://<host>/repository/<repo>/stats)

    • Fornece contagens de sujeitos, predicados, objetos e triplas
  • Sample Data (graphdb://<host>/repository/<repo>/sample)

    • Mostra uma amostra de triplas do repositório
  • Graph Content (graphdb://<host>/repository/<repo>/graph/<graphUri>)

    • Fornece dados de amostra de grafos específicos juntamente com metadados

Configuração

Você pode configurar o servidor usando variáveis de ambiente criando um arquivo .env:

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

Alternativamente, você pode fornecer o endpoint e o repositório como argumentos de linha de comando:

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

Os argumentos de linha de comando têm precedência sobre as variáveis de ambiente.

Uso com Claude Desktop

Para usar este servidor com o aplicativo Claude Desktop, adicione a seguinte configuração à seção "mcpServers" do seu 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"
      }
    }
  }
}

Substitua os valores pela sua configuração específica do GraphDB.

Instalação

# 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

Exemplos de Consultas SPARQL

Aqui estão alguns exemplos de consultas SPARQL que você pode executar com este servidor:

  1. Liste todas as classes na ontologia:
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. Liste todas as propriedades para uma classe 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. Conte instâncias por classe:
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)

Licença

Este servidor MCP é licenciado sob a Licença GPL-3.0. Isso significa que você é livre para usar, modificar e distribuir o software, sujeito aos termos e condições da Licença GNU GPL-3.0.