Teidelum Teidelum ← Back to home
GitHub

MCP Tools Reference

Complete reference for all 11 MCP tools exposed by Teidelum (5 read + 6 write).

Read Tools

These tools query and retrieve data without modifying state.

search

Full-text search across all connected sources

ParameterTypeRequiredDefaultDescription
querystringyesFull-text search query string
sourcesstring[]noallFilter results to specific sources (e.g. ["notion", "zulip"])
limitnumberno10Maximum number of results to return
date_fromstringnoFilter results from this date (ISO 8601)
date_tostringnoFilter results up to this date (ISO 8601)

Example

{
  "query": "JWT token rotation",
  "sources": ["notion"],
  "limit": 5
}

sql

Run analytical queries over structured data from all sources

ParameterTypeRequiredDescription
querystringyesSQL query to execute against local or remote tables

Example

SELECT assignee, COUNT(*) as task_count
FROM project_tasks
WHERE status = 'in_progress'
GROUP BY assignee
ORDER BY task_count DESC

describe

List available tables, schemas, and relationships

ParameterTypeRequiredDescription
sourcestringnoFilter catalog to a specific source (e.g. "notion", "zulip", "kdb")

When called without a source filter, returns the complete catalog: all tables, their columns and types, and all registered foreign-key relationships.

graph

Traverse relationships between entities (neighbors, paths)

ParameterTypeRequiredDefaultDescription
tablestringyesStarting node table (e.g. "team_members")
keystringyesNode identifier value (e.g. "Alice Chen")
key_colstringno"name"Column to match key against
operationstringno"neighbors""neighbors" or "path"
depthnumberno2Maximum traversal depth in hops (max: 10)
directionstringno"both""forward", "reverse", or "both"
rel_typesstring[]noallFilter to specific relationship types
to_tablestringpath onlyTarget table for path operation
to_keystringpath onlyTarget key value for path operation
to_key_colstringnokey_colTarget key column for path operation

Neighbors example

{
  "table": "team_members",
  "key": "Alice Chen",
  "operation": "neighbors",
  "depth": 2
}

Path example

{
  "table": "team_members",
  "key": "Alice Chen",
  "operation": "path",
  "to_table": "incidents",
  "to_key": "API Gateway Timeout"
}

sync

Trigger incremental sync for connected sources

ParameterTypeRequiredDescription
sourcestringnoSync a specific source, or omit to sync all configured sources

Write Tools

These tools create, modify, and delete data — tables, rows, documents, and relationships.

create_table

Create a new table with schema and optional initial rows

ParameterTypeRequiredDescription
namestringyesTable name (alphanumeric + underscores)
sourcestringyesSource identifier (e.g. "app", "import")
columnsarrayyesColumn definitions with name and type fields
rowsarraynoInitial rows to insert

Example

{
  "name": "customers",
  "source": "app",
  "columns": [
    {"name": "id", "type": "int"},
    {"name": "name", "type": "varchar"},
    {"name": "email", "type": "varchar"}
  ],
  "rows": [
    [1, "Alice", "alice@example.com"],
    [2, "Bob", "bob@example.com"]
  ]
}

insert_rows

Insert rows into an existing table

ParameterTypeRequiredDescription
tablestringyesTarget table name
rowsarrayyesRows to insert (JSON arrays matching table column order)

Example

{
  "table": "customers",
  "rows": [[3, "Charlie", "charlie@example.com"]]
}

delete_table

Delete a table and remove it from the catalog

ParameterTypeRequiredDescription
tablestringyesTable name to delete

add_documents

Index documents for full-text search

ParameterTypeRequiredDescription
documentsarrayyesDocuments with id, source, title, body fields

Example

{
  "documents": [{
    "id": "doc-001",
    "source": "notion",
    "title": "Auth Migration Plan",
    "body": "We are migrating from session-based auth to JWT..."
  }]
}

delete_documents

Remove documents from the search index by ID

ParameterTypeRequiredDescription
idsarrayyesDocument IDs to remove

add_relationship

Register a foreign key relationship between two tables

ParameterTypeRequiredDescription
from_tablestringyesSource table name
from_colstringyesSource column name
to_tablestringyesTarget table name
to_colstringyesTarget column name
relationstringyesRelationship label

Example

{
  "from_table": "customers",
  "from_col": "id",
  "to_table": "orders",
  "to_col": "customer_id",
  "relation": "has_orders"
}