Runwita ships with a built-in MCP (Model Context Protocol) server and a companion skill file. Once wired up, you can ask Claude to push meeting notes, find customers, list open topics, or update contacts, and it all lands in the same SQLite database your Runwita app reads from. No separate install needed. Both files are bundled inside the Runwita dmg. This is a power-user feature. If you’ve never heard of MCP, you can skip this page and use Runwita normally. Nothing here changes how the app works.Documentation Index
Fetch the complete documentation index at: https://docs.runwita.com/llms.txt
Use this file to discover all available pages before exploring further.
Two things to wire up
Setup has two independent pieces. You want both, but they serve different purposes:- MCP server, makes the tools available. Required for every client. Without this, nothing happens.
- Skill file, teaches Claude when to use the tools (e.g. “save this meeting to runwita” triggers the skill, Claude knows to call
push-engagement). Recommended for Claude Code and Cowork. Claude Desktop doesn’t use skills.
Prerequisites
- Runwita 1.0.0 or later installed at
/Applications/Runwita.app. - Opened Runwita at least once. The first launch creates
~/Library/Application Support/Runwita/app.db. The MCP server will error out if the DB doesn’t exist yet. - Node 18+ somewhere on your
PATH. If you’re not sure, runnode --versionin Terminal. If it errors, install from nodejs.org orbrew install node. - An MCP client. One of:
- Claude Code (the CLI)
- Claude Desktop (the Mac app)
- Cowork (Claude’s workspace app, if you have access)
- Any other MCP client that speaks stdio
Step 1, MCP server (all clients)
Exactly the same snippet works for every client, only the file you paste it into changes./Applications. No substitution required.
Claude Code
Edit~/.claude.json. If the file has an existing "mcpServers" key, add "runwita" inside it:
"mcpServers" yet, add the whole block.
Restart Claude Code. Verify by running:
runwita listed. Expand it and you should see 10 tools (list-journeys, push-engagement, list-topics, etc.).
Claude Desktop
Edit~/Library/Application Support/Claude/claude_desktop_config.json. Same shape as above, add a runwita entry under mcpServers.
Fully quit and reopen Claude Desktop (⌘Q, then relaunch). A small hammer icon in the input bar shows the MCP tools are loaded.
Cowork
Cowork reads MCP config from its own UI. Go to Settings → MCP servers → Add server and paste:- Name:
runwita - Command:
node - Args:
/Applications/Runwita.app/Contents/Resources/app.asar.unpacked/src/mcp/runwita-mcp-server.js
Step 2, skill install (Claude Code + Cowork)
Skip this section if you only use Claude Desktop. Claude Code and Cowork both read skill files from~/.claude/skills/. Each skill lives in its own directory containing a SKILL.md with YAML frontmatter.
The Runwita skill is bundled at:
- “push this to runwita”
- “save my meeting in runwita”
- “add this to the Acme journey”
- “what topics are open on runwita?”
Copy instead of symlink (if you prefer)
If you’d rather not have a live link into/Applications:
Your first push, the minimum workflow
Once the server is wired up, here’s the shortest path to something useful. Copy a meeting transcript to your clipboard first, then in your MCP client:Push this meeting into Runwita under customer “Maplewood Inn”: [paste transcript]The LLM will:
- Call
match-journeywith"Maplewood Inn"to find the journey ID (orcreate-journeyif it doesn’t exist). - Call
list-topicson that journey to see what topics already exist. - Extract structured data from the transcript, sections, decisions, actions, attendees, topics.
- Call
push-engagementwith all of that, mapping new topics to existing ones where it makes sense.
Using the individual tools
You don’t have to push a whole meeting. Each tool is callable on its own. A few useful patterns: “What journeys do I have?” → callslist-journeys, returns customer, use case, engagement count, open actions.
“Who’s on the Maplewood Inn journey?”
→ calls match-journey then list-engagements to get people.
“Find contacts at Acme Corp”
→ calls search-contacts with the query.
“Update Jane Doe’s role to ‘Head of Design’”
→ calls search-contacts then update-contact.
Tool reference
The server exposes 10 tools. Full schemas live insiderunwita-mcp-server.js but here’s the shape:
| Tool | Purpose |
|---|---|
list-journeys | All journeys with engagement and action counts. |
match-journey | Fuzzy customer-name lookup. |
create-journey | New journey with customer, use case, dates, owner. |
list-engagements | All engagements for a journey. |
push-engagement | Push structured meeting or email data (the big one, supports type: "email" with emailMeta). |
list-topics | All topics for a journey with touchpoint counts. |
list-contacts | All people with company, role, journey/engagement counts. |
get-contact | Full contact detail + their journeys / engagements / actions. |
search-contacts | Search by name / company / role. |
update-contact | Update name, role, or company. |
Important: the rules Claude has to follow
These are enforced by the skill file (RUNWITA-MCP-GUIDE.md) but worth knowing so you can spot bad behaviour:
- Always
match-journeybeforecreate-journey, otherwise duplicates pile up. - Always
list-topicsbeforepush-engagement, so Claude can reuse existing topics instead of making near-duplicates. - Never push two engagements to the same journey in parallel, the SQLite connection can race, and the Intelligence layer’s stale flags get out of sync.
- Every action must have a
due_date, no exceptions. Actions without deadlines never get chased and clutter the open-actions list forever. - Pass
ticktick_idon actions if you created the TickTick task yourself, the app honours existing links and won’t create a duplicate.
Gotchas
1. TickTick sync doesn’t happen from the MCP path. When you push an engagement via MCP, actions are saved but not auto-created in TickTick. The MCP server is intentionally thin, it doesn’t load Runwita’s settings or hit external APIs. If you want TickTick tasks from MCP-pushed engagements, either:- Create the TickTick tasks yourself first and pass
ticktick_idon each action, or - Create the engagement via Runwita’s in-app Inbox flow, which does sync automatically.
node via the shell. If node --version works for you in Terminal but the MCP client can’t find it, you probably have node installed via nvm in a shell init script that MCP clients don’t source. Fix: install node globally via brew install node or symlink /usr/local/bin/node to your nvm-managed binary.
5. The DB file must exist before the server starts.
If you wipe ~/Library/Application Support/Runwita/app.db (or have never launched Runwita), the MCP server crashes on first tool call. Just launch Runwita once, it creates the DB automatically.
Troubleshooting
“Claude Code says no tools are available”-
Run
/mcpand check whetherrunwitais listed. -
If not, check
~/.claude.jsonis valid JSON (jq . ~/.claude.json, errors mean bad syntax). -
If it’s listed but shows 0 tools, the server crashed on startup. Try running the server manually to see the error:
It should hang waiting for stdin. If instead it prints an error and exits, the error will tell you what’s wrong.
journeyId you passed doesn’t exist. Run list-journeys first to get real IDs.
“I pushed an engagement but Runwita doesn’t show it”
- Make sure Runwita was restarted (or its current view is refreshed), the in-app journey list doesn’t auto-poll the DB.
- Check the right journey,
match-journeydoes fuzzy matching, so"Acme"might match"Acme Corp"and vice versa.list-journeysconfirms.
push-engagement twice, or two MCP clients pushed concurrently. Delete one in the app (swipe on the timeline dot, then Delete).
“Saying ‘runwita’ doesn’t trigger anything”
The skill file isn’t installed (or isn’t where Claude Code / Cowork is looking). Check the symlink exists:
/Applications/Runwita.app/.... If it’s missing, re-run the ln -sf command from Step 2. If it’s there but the trigger still doesn’t fire, restart the client (⌘Q + reopen for Cowork / Claude Desktop; Claude Code picks it up on next prompt).
Verify the server runs on your Mac
Run this in Terminal, it fires atools/list request and should print a JSON blob listing all 10 tools:
Reading the bundled files directly
If you want to inspect the canonical setup guide or the skill prompt that ships with your installed Runwita, both live inside the app bundle:What’s next
Engagements
The shape
push-engagement expects.Topics
How topic matching behaves when an MCP-pushed engagement lands.

