Skip to content

MCP Tool: explore

Navigate and browse the Sibyl knowledge graph structure without semantic search. Ideal for listing entities, graph traversal, and understanding relationships.

Overview

The explore tool provides four modes:

ModePurpose
listBrowse entities by type with filters
relatedFind directly connected entities
traverseMulti-hop graph traversal
dependenciesTask dependency chains in topological order

Input Schema

typescript
interface ExploreInput {
  // Mode Selection
  mode: "list" | "related" | "traverse" | "dependencies";

  // Entity Filtering (for list mode)
  types?: string[]; // Entity types to include
  language?: string; // Programming language filter
  category?: string; // Category/domain filter

  // Task-Specific Filters
  project?: string; // Project ID filter
  epic?: string; // Epic ID filter
  no_epic?: boolean; // Tasks without epic
  status?: string; // Comma-separated statuses
  priority?: string; // Comma-separated priorities
  complexity?: string; // Comma-separated complexities
  feature?: string; // Feature area filter
  tags?: string; // Comma-separated tags (matches ANY)
  include_archived?: boolean; // Include archived projects

  // Graph Traversal (for related/traverse/dependencies)
  entity_id?: string; // Starting entity ID
  relationship_types?: string[]; // Filter edge types
  depth?: number; // Traversal depth (1-3)

  // Pagination
  limit?: number; // 1-200, default 50
  offset?: number; // Default 0
}

Entity Types

pattern, rule, template, topic, episode, task, project, epic, source, document

Relationship Types

DEPENDS_ON, BELONGS_TO, RELATED_TO, REFERENCES, IMPLEMENTS

Task Filters

FilterValues
statusbacklog, todo, doing, blocked, review, done, archived
prioritycritical, high, medium, low, someday
complexitytrivial, simple, medium, complex, epic

Response Schema

typescript
interface ExploreResponse {
  mode: string;
  entities: EntitySummary[] | RelatedEntity[];
  total: number; // Count in this response
  filters: Record<string, any>;
  limit: number;
  offset: number;
  has_more: boolean;
  actual_total?: number; // Total matching (for pagination)
}

interface EntitySummary {
  id: string;
  type: string;
  name: string;
  description: string; // Truncated to 200 chars
  metadata: Record<string, any>;
}

interface RelatedEntity {
  id: string;
  type: string;
  name: string;
  relationship: string;
  direction: "outgoing" | "incoming";
  distance: number;
}

Mode: list

Browse entities by type with optional filters.

List All Projects

json
{
  "name": "explore",
  "arguments": {
    "mode": "list",
    "types": ["project"]
  }
}

Response:

json
{
  "mode": "list",
  "entities": [
    {
      "id": "proj_abc123",
      "type": "project",
      "name": "Auth System",
      "description": "Authentication and authorization services",
      "metadata": {
        "status": "active",
        "repository_url": "github.com/org/auth"
      }
    }
  ],
  "total": 3,
  "has_more": false,
  "actual_total": 3
}

List Epics in Project

json
{
  "name": "explore",
  "arguments": {
    "mode": "list",
    "types": ["epic"],
    "project": "proj_abc123"
  }
}

List Tasks with Filters

json
{
  "name": "explore",
  "arguments": {
    "mode": "list",
    "types": ["task"],
    "project": "proj_abc123",
    "status": "todo,doing",
    "priority": "high,critical"
  }
}

List Unassigned Tasks

json
{
  "name": "explore",
  "arguments": {
    "mode": "list",
    "types": ["task"],
    "epic": "epic_xyz789",
    "status": "backlog,todo"
  }
}

List Tasks Without Epic

json
{
  "name": "explore",
  "arguments": {
    "mode": "list",
    "types": ["task"],
    "project": "proj_abc123",
    "no_epic": true
  }
}

Paginated List

json
{
  "name": "explore",
  "arguments": {
    "mode": "list",
    "types": ["pattern"],
    "limit": 20,
    "offset": 40
  }
}

Find entities directly connected to a specific entity.

json
{
  "name": "explore",
  "arguments": {
    "mode": "related",
    "entity_id": "pattern_oauth"
  }
}

Response:

json
{
  "mode": "related",
  "entities": [
    {
      "id": "rule_jwt_validation",
      "type": "rule",
      "name": "JWT Validation Rules",
      "relationship": "RELATED_TO",
      "direction": "incoming",
      "distance": 1
    },
    {
      "id": "template_auth",
      "type": "template",
      "name": "Auth Middleware Template",
      "relationship": "REFERENCES",
      "direction": "outgoing",
      "distance": 1
    }
  ],
  "total": 2
}

Filter by Relationship Type

json
{
  "name": "explore",
  "arguments": {
    "mode": "related",
    "entity_id": "task_123",
    "relationship_types": ["DEPENDS_ON"]
  }
}

Mode: traverse

Multi-hop graph traversal from a starting entity.

Explore Project Graph

json
{
  "name": "explore",
  "arguments": {
    "mode": "traverse",
    "entity_id": "proj_abc123",
    "depth": 2
  }
}

Traverse with Relationship Filter

json
{
  "name": "explore",
  "arguments": {
    "mode": "traverse",
    "entity_id": "epic_xyz789",
    "depth": 2,
    "relationship_types": ["BELONGS_TO", "DEPENDS_ON"]
  }
}

Mode: dependencies

Get task dependency chains in topological order (dependencies before dependents).

Get Task Dependencies

json
{
  "name": "explore",
  "arguments": {
    "mode": "dependencies",
    "entity_id": "task_123"
  }
}

Response:

json
{
  "mode": "dependencies",
  "entities": [
    {
      "id": "task_100",
      "type": "task",
      "name": "Set up database",
      "description": "Initialize PostgreSQL schema",
      "metadata": {
        "status": "done",
        "depth": 2,
        "is_root": false
      }
    },
    {
      "id": "task_110",
      "type": "task",
      "name": "Create user model",
      "description": "Define user entity and migrations",
      "metadata": {
        "status": "done",
        "depth": 1,
        "is_root": false
      }
    },
    {
      "id": "task_123",
      "type": "task",
      "name": "Implement auth flow",
      "description": "Add login and registration",
      "metadata": {
        "status": "doing",
        "depth": 0,
        "is_root": true
      }
    }
  ],
  "total": 3,
  "filters": {}
}

Circular Dependency Detection

If cycles are detected, they're reported in the response:

json
{
  "mode": "dependencies",
  "entities": [...],
  "filters": {
    "circular_dependencies": [
      {"from": "task_123", "to": "task_100"}
    ],
    "warning": "Circular dependencies detected"
  }
}

Workflow Patterns

Project-First Task Management

Always start with project discovery:

1. explore(mode="list", types=["project"])
2. explore(mode="list", types=["epic"], project="<project_id>")
3. explore(mode="list", types=["task"], epic="<epic_id>", status="todo")

Knowledge Discovery

1. search("topic") --> Find relevant patterns
2. explore(mode="related", entity_id="<pattern_id>") --> Find related rules
3. explore(mode="traverse", entity_id="<rule_id>", depth=2) --> Explore context

Error Handling

ErrorCauseResolution
entity_id requiredMissing ID for related/traverse/dependenciesProvide valid entity_id
organization_id requiredNo org contextEnsure valid JWT with org claim
Entity not foundInvalid entity_idVerify entity exists

Released under the MIT License.