ReferenceMCP Tools

MCP Tools Reference

Syke’s MCP server exposes 8 tools. All tools are available via stdio or HTTP transport.

Summary by default. query_timeline and search_events return summaries (content stripped, content_length added) to prevent context flooding. Use get_event to fetch full content for a specific event, or pass summary: false to get full content inline.

ask

Primary tool — Ask any question about the user in natural language. Syke explores its timeline using agentic reasoning and returns a precise answer.

Parameters:

  • question (string, required): Natural language question about the user.

Returns: A synthesized answer based on the user’s full digital footprint.

Requires: ANTHROPIC_API_KEY environment variable.

Examples:

{"name": "ask", "arguments": {"question": "What is the user working on?"}}
{"name": "ask", "arguments": {"question": "What did they do last week?"}}
{"name": "ask", "arguments": {"question": "What do they think about RAG architectures?"}}

Use ask() for any question about the user — it’s smarter than direct queries. Falls back to core data tools if no API key is set.


get_profile

Returns the user’s identity profile.

Parameters:

  • format (string): json | markdown | claude-md | user-md. Default: json

Returns: Full identity profile in the requested format.

Example request:

{"name": "get_profile", "arguments": {"format": "claude-md"}}

Example response (claude-md):

# About utkarsh
<!-- Generated by Syke from gmail, chatgpt, github (150 events) -->
 
A curious builder who loves exploring consciousness and technology.
 
## What's Active Right Now
🔥 **Syke Hackathon**: Building a personal context daemon for Claude Code hackathon.
  - Multiple commits today
  - ChatGPT conversations about architecture

query_timeline

Query the event timeline with filters.

Parameters:

  • since (string, optional): ISO date to filter from. Example: "2025-01-01"
  • source (string, optional): Filter by platform: chatgpt, github, gmail, claude-code
  • limit (integer, optional): Max events. Default: 50
  • summary (boolean, optional): If true (default), returns titles and metadata without content. Set to false for full event content.

Returns: Event summaries by default (content stripped, content_length added). Pass summary: false for full content, or use get_event to fetch individual events.

get_event

Fetch full content for a single event.

Parameters:

  • event_id (string, required): The event ID from timeline/search results.

Returns: Complete event including full content.

get_manifest

Data summary and status overview.

Parameters: None

Returns: Source counts, event totals, profile status, last sync time.

Example response:

{
  "total_events": 150,
  "sources": {
    "claude-code": 45,
    "chatgpt": 67,
    "github": 38
  },
  "profile_age_hours": 2.3,
  "profile_fresh": true,
  "events_since_profile": 0
}

search_events

Full-text keyword search across all events.

Parameters:

  • query (string, required): Search term.
  • limit (integer, optional): Max results. Default: 20
  • summary (boolean, optional): If true (default), returns titles and metadata without content. Set to false for full event content.

Returns: Matching event summaries by default (content stripped, content_length added). Pass summary: false for full content.

push_event

Push a single event from any MCP client.

Parameters:

  • source (string, required): Platform name. Example: "claude-code", "my-agent"
  • event_type (string, required): Category. Example: "conversation", "observation", "decision"
  • title (string, required): Short title.
  • content (string, required): Full event content.
  • timestamp (string, optional): ISO timestamp. Defaults to now.
  • metadata (string, optional): JSON string of extra metadata.
  • external_id (string, optional): Dedup key.

Response shapes:

{"status": "ok"}
{"status": "duplicate"}
{"status": "error", "error": "Invalid metadata JSON: ..."}

push_events

Batch push multiple events.

Parameters:

  • events_json (string, required): JSON array of event objects. Each object has the same fields as push_event.

Response:

{"status": "ok", "inserted": 3}