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 architecturequery_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-codelimit(integer, optional): Max events. Default: 50summary(boolean, optional): Iftrue(default), returns titles and metadata without content. Set tofalsefor 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: 20summary(boolean, optional): Iftrue(default), returns titles and metadata without content. Set tofalsefor 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 aspush_event.
Response:
{"status": "ok", "inserted": 3}