comulytic
Query Comulytic meetings, contacts, action items, and conversation history. Use when: user asks about meetings, notes, call summaries, contacts, pending tasks, or wants to search conversation content. NOT for: scheduling new meetings, sending messages, or editing contacts.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/chenbaochao/comulyticComulytic Skill
Query meetings, contacts, action items, and conversations from Comulytic.
When to Use
✅ USE this skill when:
- "Show my recent meetings"
- "What did we discuss with [person]?"
- "Any overdue action items?"
- "Search conversations about [topic]"
- "Get the transcript for [meeting]"
- "What's [contact]'s profile?"
When NOT to Use
❌ DON'T use this skill when:
- Scheduling new meetings → use calendar
- Sending messages → use messaging tools
- Editing contacts → use Comulytic app
Setup (one-time)
~/.openclaw/skills/comulytic/scripts/comulytic-login.py
User enters email + password, script auto-completes OAuth and saves the token.
Auth Token
Read the token before making any call. Check env var first, then file:
COMULYTIC_MCP_TOKEN="${COMULYTIC_MCP_TOKEN:-$(python3 -c "import json; print(json.load(open('$HOME/.comulytic/mcp-token.json'))['access_token'])" 2>/dev/null)}"
If empty, tell the user to run the login command above, or set the COMULYTIC_MCP_TOKEN environment variable.
API Pattern
All calls use one endpoint with JSON-RPC 2.0. Always read the token first using the Auth Token pattern above:
COMULYTIC_MCP_TOKEN="${COMULYTIC_MCP_TOKEN:-$(python3 -c "import json; print(json.load(open('$HOME/.comulytic/mcp-token.json'))['access_token'])" 2>/dev/null)}"
curl -s -X POST https://api.comulytic.ai/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $COMULYTIC_MCP_TOKEN" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"TOOL","arguments":{ARGS}}}' \
| jq '.result.content[0].text' -r | jq '.'
Tools
meetings/search — Search meetings
COMULYTIC_MCP_TOKEN="${COMULYTIC_MCP_TOKEN:-$(python3 -c "import json; print(json.load(open('$HOME/.comulytic/mcp-token.json'))['access_token'])" 2>/dev/null)}"
# Recent meetings
curl -s -X POST https://api.comulytic.ai/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $COMULYTIC_MCP_TOKEN" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"meetings/search","arguments":{"limit":10}}}' \
| jq '.result.content[0].text' -r | jq '.'
# By keyword
curl -s -X POST https://api.comulytic.ai/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $COMULYTIC_MCP_TOKEN" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"meetings/search","arguments":{"query":"KEYWORD","limit":5}}}' \
| jq '.result.content[0].text' -r | jq '.'
# By date range
curl -s -X POST https://api.comulytic.ai/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $COMULYTIC_MCP_TOKEN" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"meetings/search","arguments":{"date_from":"2025-03-01","date_to":"2025-03-31"}}}' \
| jq '.result.content[0].text' -r | jq '.'
Args: query, date_from/date_to (YYYY-MM-DD), contact_id, limit (max 50), cursor.
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-chenbaochao-comulytic": {
"enabled": true,
"auto_update": true
}
}
}