# Contexta

Contexta gives AI assistants a persistent, typed memory layer backed by a knowledge graph. One tool call searches across keyword, vector, and graph indexes simultaneously — so your agent finds the ri…

## Quick Start

```bash
# Connect this server (installs CLI if needed)
npx -y @smithery/cli@latest mcp add ai-jcce/mcp-contexta

# Browse available tools
npx -y @smithery/cli@latest tool list ai-jcce/mcp-contexta

# Get full schema for a tool
npx -y @smithery/cli@latest tool get ai-jcce/mcp-contexta read_page

# Call a tool
npx -y @smithery/cli@latest tool call ai-jcce/mcp-contexta read_page '{}'
```

## Direct MCP Connection

Endpoint: `https://mcp-contexta--ai-jcce.run.tools`

## Tools (49)

- `read_page` — Read a DashDoc page and return its content as Markdown with metadata.
- `create_page` — Create a new page in DashDoc workspace. Content is Markdown (auto-converted to TipTap). Returns page_id and node_id.
- `update_page` — Update an existing DashDoc page. Handles optimistic locking automatically. Content is Markdown. Embedded blocks (kanban…
- `delete_page` — Soft-delete a DashDoc page.
- `restore_page` — Restore a soft-deleted DashDoc page. Clears deleted_at and re-registers workspace node.
- `list_workspaces` — List all workspaces available to the current user. Returns workspace IDs needed for other tool calls.
- `get_tree` — Get workspace tree structure. Without node_id returns root items; with node_id drills into a subtree.
- `create_folder` — Create a folder in the DashDoc workspace tree.
- `create_project` — Create a new project in the DashDoc workspace tree. A project includes a Neo4j node, a linked page, and a workspace ent…
- `move_page` — Move a workspace item (page or folder) to a new parent within the SAME workspace. Cross-workspace moves are not support…
- `upload_file` — Upload a file to DashDoc workspace (max 500 MB).
- `reorder_workspace` — Reorder workspace items within their parent.
- `search` — Keyword search across all DashDoc content: pages, documents, meeting notes, decisions, discussions, tasks, graph nodes,…
- `unified_search` — Semantic search combining keyword matching, vector similarity, knowledge graph traversal, and conversation search. Best…
- `graph_search` — Search graph nodes (entities) by name. Returns matching nodes with their types and properties.
- `list_tasks` — List tasks from DashDoc with optional filters.
- `get_task` — Get full task details by ID.
- `create_task` — Create a new task in DashDoc. Agent tasks should always include tags: ["agent"] and board_id for Dev Board.
- `update_task` — Update an existing task in DashDoc.
- `delete_task` — Delete a task.
- `get_task_relations` — Get all relations for a task (subtasks, blocked by, blocks, project, etc.).
- `link_tasks` — Create a relationship between two tasks. Types: PART_OF (subtask→parent), BLOCKS (blocker→blocked), PART_OF_PROJECT (ta…
- `unlink_tasks` — Remove a relationship from a task by relation ID (get IDs from get_task_relations).
- `bulk_update_tasks` — Bulk update status for multiple tasks at once. Max 200 tasks per call.
- `create_canvas_node` — Create a new entity and place it on a canvas. Entity types: Person, Organization, Project, Server, Service, Agent, Inte…
- `add_node_to_canvas` — Add an existing graph node to a canvas at specified position.
- `read_presentation` — Read a DashDoc presentation (Reveal.js markdown format).
- `create_spreadsheet` — Create a spreadsheet with optional headers and data rows.
- `read_spreadsheet` — Read spreadsheet data as markdown table, CSV, or JSON. For large spreadsheets (>1000 rows), consider using range parame…
- `update_cells` — Update specific cells by A1 address (e.g. B2, D15). Handles optimistic locking with retry.
- `append_rows` — Append rows to the end of a spreadsheet. Handles optimistic locking with retry.
- `manage_sheets` — List, add, delete, rename a sheet, or toggle gridlines visibility. action=list reads sheets (workspace-optional); all o…
- `find_cells` — Search for a value in spreadsheet cells. Returns matching cell addresses.
- `style_cells` — Apply style (bold, italic, colors, alignment, etc.) to a cell or range.
- `merge_cells` — Merge or unmerge cells in a range.
- `resize_columns_rows` — Set column widths and/or row heights.
- `save_knowledge` — Save structured facts to the knowledge graph with automatic entity resolution and deduplication.
- `list_reminders` — List reminders with optional status filter.
- `graph_node` — Unified CRUD for knowledge-graph nodes (entities). Replaces create_node, get_node, update_node, delete_node, get_relate…
- `graph_edge` — Unified CRUD for knowledge-graph edges (relationships). Also used to create connections between nodes on a canvas. Repl…
- `graph_schema` — List all entity types, relationship types, and property schemas available in the knowledge graph. Renamed from graph_ty…
- `board` — Unified CRUD for kanban boards. Replaces list_boards, get_board, create_board, update_board, delete_board.
- `canvas` — Unified CRUD for canvases (visual boards). Replaces list_canvases, get_canvas, create_canvas, update_canvas, delete_can…
- `canvas_node` — Update or delete a node on a canvas. Creators (create_canvas_node, add_node_to_canvas) are separate tools.
- `canvas_edge` — Update or delete an edge on a canvas (styling layer). To CREATE an edge between canvas nodes, use graph_edge(action=cre…
- `presentation` — Unified create/update for Reveal.js presentations. Read via read_presentation.
- `reminder` — Unified create/update/delete for reminders. Listing remains via list_reminders.
- `tree_node` — Update or delete an item in the workspace tree (page, folder, project, etc.).
- `manage_rows_columns` — Insert or delete rows/columns in a spreadsheet, shifting existing cells.

```bash
# Get full input/output schema for a tool
npx -y @smithery/cli@latest tool get ai-jcce/mcp-contexta <tool-name>
```
