Complete reference of all MCP tools exposed by the Golems ecosystem. Use these in Claude Code via .mcp.json configuration.
Setup
The three daemon MCPs (brainlayer, voicelayer, cmuxlayer) run as persistent macOS LaunchAgents. Other MCP servers are configured in .mcp.json:
{
"brainlayer": {
"command": "brainlayer-mcp"
},
"voicelayer": {
"command": "voicelayer-mcp"
},
"golems-glm": {
"command": "bun",
"args": ["run", "packages/shared/src/glm/mcp-server.ts"]
}
}Additional MCP servers (supabase, exa, context7, whatsapp-mcp) are configured globally in ~/.claude/.mcp.json.
Then in Claude Code: /tools or use @brainlayer in any prompt.
All MCP Servers
| Server | Command | Tools | Purpose |
|---|---|---|---|
| brainlayer | brainlayer-mcp | 12 | Memory layer — search, store, digest 284K+ indexed conversation chunks |
| voicelayer | voicelayer-mcp | 6 | Voice I/O — TTS + STT via VoiceBar daemon |
| cmuxlayer | native MCP daemon | 10+ | Terminal multiplexer — panes, splits, agent orchestration |
| golems-glm | bun run packages/shared/src/glm/mcp-server.ts | 2 | Local GLM-4.7-Flash — summarize, score/classify (experimental) |
| supabase | @supabase/mcp-server-supabase | 20+ | Database access, SQL, migrations, types |
| exa | exa-mcp-server | 3 | Web search, code context, company research |
| context7 | context7-mcp | 2 | Library documentation lookup |
| whatsapp-mcp | whatsapp-mcp | 10+ | WhatsApp messaging — send, read, search contacts |
Email Tools (golems-email)
email_getRecent
Get recent emails from the last N hours, filtered by minimum score.
Parameters:
hours(number, default: 24) — How many hours back to lookminScore(number, default: 0) — Minimum email score (5=notable, 7=important, 10=urgent)
Returns: Array of emails with subject, sender, score, category, received time
Example:
Get all urgent emails (score 10) from the last 24 hours
email_search
Search emails by keyword in subject or sender.
Parameters:
query(string, required) — Search term (subject or sender)limit(number, default: 20) — Max results to return
Returns: Matching emails with scores and context
Example:
Search for emails from "Microsoft" or about "interview"
email_subscriptions
Get subscription summary: monthly spend, active services, changes.
Parameters: None
Returns:
- Total monthly spend (USD)
- List of active services
- New subscriptions this month
- Cancelled subscriptions
Example:
What's my current monthly subscription spend?
email_urgent
Get urgent emails (score 10) that haven't been notified yet.
Parameters: None
Returns: List of unnotified urgent emails requiring immediate action
Example:
Are there any urgent emails I haven't seen yet?
email_stats
Quick email statistics for the last 24 hours.
Parameters: None
Returns:
- Total email count
- Urgent count (score 10)
- Breakdown by category (job, interview, subscription, etc.)
email_getByGolem
Get emails routed to a specific domain golem.
Parameters:
golem(enum, required) — Target golemrecruitergolem— Job and interview emailstellergolem— Subscription and payment emailsclaudegolem— Tech updates and urgent itemsemailgolem— General/newsletter emails
hours(number, default: 24) — How many hours back
Returns: Emails routed to the specified golem with routing reason
email_draftReply
Generate a reply draft to an email.
Parameters:
subject(string, required) — Original email subjectfrom(string, required) — Original sender emailsnippet(string) — Email preview/bodycategory(string) — Email category (interview, job, subscription, etc.)intent(enum, required) — Reply intentaccept— Accepting offer/positiondecline— Declining politelyinterested— Expressing interest, ask for detailsfollowup— Following up on previous conversationacknowledge— Thanking them, acknowledging message
customNote(string) — Optional custom text to prepend
Returns: Generated reply draft (template-based, not LLM-generated)
Financial Tools (golems-email — via TellerGolem)
teller_monthlyReport
Generate monthly spending report.
Parameters:
month(string, default: current) — Month in YYYY-MM format
Returns:
month— Requested monthtotalSpend— Total USD spentbyCategory— Breakdown by IRS Schedule C category- advertising, insurance, office, software, education, travel, meals, professional-services, other
byVendor— Breakdown by vendor/servicesubscriptionCount— Active services this month
Example:
What did I spend on software subscriptions in 2026-01?
teller_taxSummary
Generate annual tax report for a year.
Parameters:
year(number, default: current) — Tax year (e.g., 2026)
Returns:
year— Requested yeartotalDeductible— Total IRS-deductible expensesbyCategory— Each category with:total— Total for categoryitems— Line items (vendor + amount)
Example:
Generate my 2025 tax report for Schedule C
Job Tools (golems-jobs)
jobs_getRecent
Get recently scraped jobs from the latest results file.
Parameters:
limit(number, default: 20) — Max results to return
Returns: Latest jobs with company, title, and URL
jobs_search
Search jobs by keyword (title, company, or description).
Parameters:
query(string, required) — Search term
Returns: Matching scraped jobs without scores
jobs_getHot
Get hot job matches (score 8+).
Parameters: None
Returns: Hot matches with company, title, score, reason, and URL
jobs_watchlist
Get jobs from watchlist companies.
Parameters: None
Returns: Jobs from companies in the watchlist
jobs_stats
Quick job statistics.
Parameters: None
Returns:
- Total jobs scraped
- Total jobs seen
- Total batches
- Hot/warm/cold counts
Memory Tools (brainlayer)
BrainLayer provides persistent memory across Claude Code sessions — semantic search over 284K+ indexed conversation chunks using bge-large-en-v1.5 embeddings (1024 dims) and sqlite-vec. BrainBar daemon (209KB native Swift binary) provides real-time indexing via hooks.
brainlayer_search
Semantic + keyword hybrid search across all past Claude Code sessions.
Parameters:
query(string, required) — Natural language search queryproject(string, optional) — Filter by project path (e.g.,-Users-etanheyman-Gits-golems)content_type(enum, optional) — Filter by type:ai_code,stack_trace,user_message,assistant_text,file_read,git_diffsource(enum, optional) — Filter by source:claude_code,whatsapp,youtube,alltag(string, optional) — Filter by enrichment tag (e.g.,bug-fix,authentication)intent(enum, optional) — Filter by intent:debugging,designing,configuring,discussing,deciding,implementing,reviewingimportance_min(number, optional) — Minimum importance score (1-10)num_results(number, default: 5) — Max results
Returns: Matching chunks with content, score, project, and timestamp
brainlayer_context
Get surrounding conversation context for a search result.
Parameters:
chunk_id(string, required) — Chunk ID from a search resultbefore(number, default: 3) — Chunks before targetafter(number, default: 3) — Chunks after target
Returns: The chunk plus surrounding conversation turns for full context
brainlayer_stats
Knowledge base statistics.
Returns: Total chunks, projects indexed, database size, content type breakdown
brainlayer_list_projects
List all indexed projects.
Returns: Project paths with chunk counts
brainlayer_file_timeline
Get the interaction timeline for a specific file across sessions.
Parameters:
file_path(string, required) — File path or partial path (e.g.,telegram-bot.ts)project(string, optional) — Filter by projectlimit(number, default: 50) — Max interactions
Returns: Chronological list of all sessions that read, edited, or wrote to the file
brainlayer_operations
Get logical operation groups for a session (read-edit-test cycles, research chains, debug sequences).
Parameters:
session_id(string, required) — Session ID to query
Returns: Grouped operations with types and file lists
brainlayer_regression
Analyze a file for regressions — shows the last successful operation and all changes after it.
Parameters:
file_path(string, required) — File path to analyzeproject(string, optional) — Filter by project
Returns: Last success point and subsequent changes
brainlayer_plan_links
Query plan-linked sessions — which plan/phase a session belongs to, or all sessions for a plan.
Parameters:
session_id(string, optional) — Session ID to look upplan_name(string, optional) — Plan name to queryproject(string, optional) — Filter by project
Returns: Plan/phase associations for sessions
brain_store
Store a new memory chunk with tags and importance scoring.
Parameters:
content(string, required) — Text content to storetags(array, optional) — Tags for categorization (e.g.,["decision", "6pm-mini"])importance(number, optional) — Importance score 1-10
Returns: Stored chunk ID and confirmation
brain_digest
Digest large content into structured knowledge — extracts entities, relations, and action items. Three modes: auto (detect content type), conversation (Claude Code sessions), document (reports, research).
Parameters:
raw_content(string, required) — Raw text to digestmode(enum, optional) —auto,conversation, ordocument
Returns: Extracted entities, relations, and action items stored in BrainLayer
brain_entity
Query a specific entity by name — returns all known facts, relations, and mentions.
Parameters:
name(string, required) — Entity name to look up
Returns: Entity details with relations and source chunks
brain_expand
Expand a search result with related knowledge — follows entity relations to surface connected information.
Parameters:
chunk_id(string, required) — Starting chunk IDdepth(number, default: 1) — How many relation hops to follow
Returns: Related chunks and entities
brain_tags
List all tags in the knowledge base with counts.
Returns: Tag list with frequency counts
brain_subscribe / brain_unsubscribe
Subscribe to real-time updates for a topic or entity. Notifications arrive via the pubsub system.
Parameters:
topic(string, required) — Topic or entity name to watch
brain_update
Update an existing chunk's content, tags, or importance.
Parameters:
chunk_id(string, required) — Chunk ID to updatecontent(string, optional) — New contenttags(array, optional) — Updated tagsimportance(number, optional) — Updated importance score
Returns: Updated chunk confirmation
Local LLM Tools (golems-glm)
GLM-4.7-Flash running locally via Ollama. Used for context reduction — summarize content before loading into Opus context.
glm_summarize
Summarize text to key points using local GLM model.
Parameters:
text(string, required) — Text to summarizemaxSentences(number, default: 3) — Maximum sentences in summary
Returns: Condensed summary of the input text
glm_score
Structured JSON classification/scoring using local GLM model.
Parameters:
text(string, required) — Text to classifyprompt(string, required) — Classification instructionsschema(object, required) — JSON schema for output
Returns: Structured JSON matching the provided schema
Database Tools (supabase)
Full Supabase database access via the official @supabase/mcp-server-supabase server. Provides read/write access to all Golems tables.
Key capabilities: table listing, SQL queries, migrations, edge functions, type generation. See Supabase MCP docs for the full tool list.
Web Search Tools (exa)
Exa AI-powered web search via exa-mcp-server. Used by RecruiterGolem for company research and contact discovery.
Key capabilities: semantic web search, code context retrieval, company research.
Example Workflows
Find Urgent Items to Handle Now
1. Get urgent emails: email_urgent
2. For each urgent email about an interview:
- Draft reply with intent="interested"
3. Check if jobs matched: jobs_getHot
Monthly Budget Review
1. Get subscription summary: email_subscriptions
2. Get monthly report: teller_monthlyReport
3. Check for payment failures: email_urgent
4. Identify cost-reduction opportunities
Interview Preparation
1. Get recent interview emails: email_getRecent with minScore=8
2. Search related job postings: jobs_search with company name
3. Check if company is in watchlist: jobs_watchlist
4. Draft followup emails
Tax Prep
1. Get annual tax report: teller_taxSummary for 2025
2. Review each category for accuracy
3. Identify missing categories
4. Export for accountant
Integration Notes
- Email tools use Supabase directly (cloud-first architecture)
- Job tools query Supabase
golem_jobsandscrape_activitytables - BrainLayer tools query local sqlite-vec database (284K+ chunks, FTS5 + vector hybrid search, faceted tag schema)
- GLM tools run locally via Ollama (no network, ~3-8s per call on M1 Pro)
- Scoring: Email scores 1-10 (10=urgent), Job scores 1-10 (8+=hot match)
- Categories: Email categories are semantic (job, interview, subscription, tech-update, newsletter, promo, social, other)
See individual golem documentation for deeper configuration and usage.