Files
mempalace/website/reference/mcp-tools.md
T
2026-04-10 11:49:31 -03:00

250 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# MCP Tools Reference
Detailed parameter schemas for all 19 MCP tools.
## Palace — Read Tools
### `mempalace_status`
Palace overview: total drawers, wing and room counts, AAAK spec, and memory protocol.
**Parameters:** None
**Returns:** `{ total_drawers, wings, rooms, palace_path, protocol, aaak_dialect }`
---
### `mempalace_list_wings`
List all wings with drawer counts.
**Parameters:** None
**Returns:** `{ wings: { "wing_name": count } }`
---
### `mempalace_list_rooms`
List rooms within a wing (or all rooms if no wing given).
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `wing` | string | No | Wing to list rooms for |
**Returns:** `{ wing, rooms: { "room_name": count } }`
---
### `mempalace_get_taxonomy`
Full wing → room → drawer count tree.
**Parameters:** None
**Returns:** `{ taxonomy: { "wing": { "room": count } } }`
---
### `mempalace_search`
Semantic search. Returns verbatim drawer content with similarity scores.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query` | string | **Yes** | What to search for |
| `limit` | integer | No | Max results (default: 5) |
| `wing` | string | No | Filter by wing |
| `room` | string | No | Filter by room |
**Returns:** `{ query, filters, results: [{ text, wing, room, source_file, similarity }] }`
---
### `mempalace_check_duplicate`
Check if content already exists in the palace before filing.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `content` | string | **Yes** | Content to check |
| `threshold` | number | No | Similarity threshold 01 (default: 0.850.87) |
**Returns:** `{ is_duplicate, matches: [{ id, wing, room, similarity, content }] }`
---
### `mempalace_get_aaak_spec`
Returns the AAAK dialect specification.
**Parameters:** None
**Returns:** `{ aaak_spec: "..." }`
---
## Palace — Write Tools
### `mempalace_add_drawer`
File verbatim content into the palace. Identical content (same deterministic drawer ID) is silently skipped. For similarity-based duplicate detection before filing, use `mempalace_check_duplicate`.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `wing` | string | **Yes** | Wing (project name) |
| `room` | string | **Yes** | Room (aspect: backend, decisions, etc.) |
| `content` | string | **Yes** | Verbatim content to store |
| `source_file` | string | No | Where this came from |
| `added_by` | string | No | Who is filing (default: "mcp") |
**Returns:** `{ success, drawer_id, wing, room }`
---
### `mempalace_delete_drawer`
Delete a drawer by ID. Irreversible.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `drawer_id` | string | **Yes** | ID of the drawer to delete |
**Returns:** `{ success, drawer_id }`
---
## Knowledge Graph Tools
### `mempalace_kg_query`
Query entity relationships with time filtering.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `entity` | string | **Yes** | Entity to query (e.g. "Max", "MyProject") |
| `as_of` | string | No | Date filter — only facts valid at this date (YYYY-MM-DD) |
| `direction` | string | No | `outgoing`, `incoming`, or `both` (default: `both`) |
**Returns:** `{ entity, as_of, facts: [{ direction, subject, predicate, object, valid_from, valid_to, current }], count }`
---
### `mempalace_kg_add`
Add a fact to the knowledge graph.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `subject` | string | **Yes** | The entity doing/being something |
| `predicate` | string | **Yes** | Relationship type (e.g. "loves", "works_on") |
| `object` | string | **Yes** | The entity being connected to |
| `valid_from` | string | No | When this became true (YYYY-MM-DD) |
| `source_closet` | string | No | Closet ID where this fact appears |
**Returns:** `{ success, triple_id, fact }`
---
### `mempalace_kg_invalidate`
Mark a fact as no longer true.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `subject` | string | **Yes** | Entity |
| `predicate` | string | **Yes** | Relationship |
| `object` | string | **Yes** | Connected entity |
| `ended` | string | No | When it stopped being true (default: today) |
**Returns:** `{ success, fact, ended }`
---
### `mempalace_kg_timeline`
Chronological timeline of facts.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `entity` | string | No | Entity to get timeline for (omit for full timeline) |
**Returns:** `{ entity, timeline: [{ subject, predicate, object, valid_from, valid_to, current }], count }`
---
### `mempalace_kg_stats`
Knowledge graph overview.
**Parameters:** None
**Returns:** `{ entities, triples, current_facts, expired_facts, relationship_types }`
---
## Navigation Tools
### `mempalace_traverse`
Walk the palace graph from a room. Find connected ideas across wings.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `start_room` | string | **Yes** | Room to start from |
| `max_hops` | integer | No | How many connections to follow (default: 2) |
**Returns:** `[{ room, wings, halls, count, hop, connected_via }]`
---
### `mempalace_find_tunnels`
Find rooms that bridge two wings.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `wing_a` | string | No | First wing |
| `wing_b` | string | No | Second wing |
**Returns:** `[{ room, wings, halls, count, recent }]`
---
### `mempalace_graph_stats`
Palace graph overview: nodes, tunnels, edges, connectivity.
**Parameters:** None
**Returns:** `{ total_rooms, tunnel_rooms, total_edges, rooms_per_wing, top_tunnels }`
---
## Agent Diary Tools
### `mempalace_diary_write`
Write to your personal agent diary.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `agent_name` | string | **Yes** | Your name — each agent gets its own wing |
| `entry` | string | **Yes** | Diary entry (in AAAK format recommended) |
| `topic` | string | No | Topic tag (default: "general") |
**Returns:** `{ success, entry_id, agent, topic, timestamp }`
---
### `mempalace_diary_read`
Read recent diary entries.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `agent_name` | string | **Yes** | Your name |
| `last_n` | integer | No | Number of recent entries (default: 10) |
**Returns:** `{ agent, entries: [{ date, timestamp, topic, content }], total, showing }`