Integration · Claude Code

Wally lives inyour IDE.

The official Turtini plugin for Claude Code wires the @turtini/mcp server into your editor in five seconds. Your agent gets read and write access to your real org data — contacts, accounts, opportunities, articles, events — while it builds against it.

claude plugin install github.com/Turtini/claude-code-plugin

Then run /turtini in any Claude Code session and follow the guided setup.

What you can ask Claude

Talk to your org from the editor.

"List my last 10 contacts."

Claude calls contact_list and uses the response shapes to scaffold UI types in the file you're working in.

"Create an event for next Friday with 100 seats."

Claude calls event_create. You get a real event back to point your registration form at end-to-end.

"Pull the latest article draft and convert it to MDX."

Claude calls article_list, picks the draft, and emits a clean MDX file in your repo — ready for your docs site.

Setup, in order

Four steps. About a minute.

After step 2 the /turtini slash command in Claude Code walks you through the rest.

1

Mint a Turtini API key

Open Settings → Partner Dev → API Keys, pick the scopes you want the agent to have (read-only for safe exploration, read/write to actually let it ship), and copy the key — it's shown once.

2

Install the plugin

One command in any terminal. The plugin registers the MCP server entry in Claude Code automatically — no .mcp.json edits.

3

Set TURTINI_API_KEY in your shell

Add a single export to your ~/.zshrc (or PowerShell profile). The plugin reads it at startup; the key never leaves your machine.

4

Restart Claude Code

The MCP server only picks up new env vars on a fresh process. After restart, claude mcp list shows turtini connected.

The whole install

# 1. Install the plugin
claude plugin install github.com/Turtini/claude-code-plugin

# 2. Set your API key (zsh / bash)
echo 'export TURTINI_API_KEY=turtini_xxx' >> ~/.zshrc && source ~/.zshrc

# 3. Restart Claude Code, then verify
claude mcp list | grep turtini
# → turtini  connected

Live tool surface

What the agent gets.

The agent picks these up automatically. Scopes on your API key control which it can actually call.

auth_whoamiread

Confirm which Turtini user / org the API key belongs to.

account_listread

List CRM accounts in the org.

contact_listread

Search and page through people records.

contact_createwrite

Add a new contact — first name, last name, email, account.

opportunity_listread

Open deals with stage, amount, and close date.

article_listread

Browse drafts and published articles.

article_createwrite

Draft a new article from a title + body.

event_listread

Upcoming events with attendance counts.

event_createwrite

Spin up an event with capacity, dates, ticket types.

The toolset grows with @turtini/mcp releases. Run npx -y @turtini/mcp --list-tools for a live snapshot.

Security model

Your key. Your machine. Your scopes.

Local only

The MCP server runs as a local subprocess of Claude Code. Your key reads from your shell env; it's not bundled in the plugin or sent anywhere outside the standard authenticated API calls Claude Code makes on your behalf.

Scoped

API keys carry per-module read/write scopes. The agent can only do what the key can do. Mint a read-only key for safe exploration; add write scopes only when you want the agent to ship.

Revocable in seconds

Delete the key in Settings → Partner Dev → API Keys, or claude plugin uninstall turtini. Either kills agent access on the next call.

FAQ

The honest answers.

Where does my API key actually live?

In your shell environment on your machine, nowhere else. The plugin manifest references it as ${TURTINI_API_KEY}; Claude Code injects it into the local subprocess that runs @turtini/mcp. The key is never bundled in this plugin, never sent to Anthropic, and never persisted by Turtini outside the standard authenticated API calls the agent makes on your behalf.

How do I scope the key safely?

Pick the smallest set of scopes that does what you want. For exploring an org, contacts:read + accounts:read + opportunities:read is enough. For an agent that drafts content, add articles:write. Avoid handing it write scopes you wouldn't hand a junior teammate.

What happens when @turtini/mcp publishes new tools?

The MCP server is fetched fresh by npx -y @turtini/mcp every time Claude Code starts, so new tools appear without you re-installing the plugin. The /turtini skill's documented tool list is also kept in sync by a weekly background agent that opens a PR if the docs drift from the live surface.

Does this work in Cursor / Windsurf / Continue?

The underlying @turtini/mcp server works in any MCP-aware IDE — Cursor, Windsurf, Continue all have docs in the package README. The Claude Code plugin is just the easiest install path; there's nothing Claude-Code-specific about the server itself.

How do I revoke access?

Two ways. (1) Delete the key in Turtini Settings → Partner Dev → API Keys — the agent loses access within seconds and any in-flight call fails cleanly. (2) Uninstall the plugin: claude plugin uninstall turtini.

Can the agent see PII / customer data?

It can see whatever the API key's scopes allow it to see, and only when it actively calls a tool. The agent runs locally inside your Claude Code session — there's no background ingestion, no training data, no telemetry on the records returned. Standard MCP semantics: tools fire on demand, results live in your session context, nothing else.

Five seconds to install.An hour back, every day.

Stop pasting org context into your IDE. Let your agent ask Turtini directly.

Turtini uses cookies to improve your experience, analyze site traffic, and personalize content. By clicking Accept, you consent to our use of cookies. Privacy Policy

Wally

Your Turtini assistant

Hi, I'm Wally!

Ask me anything about Turtini — features, pricing, how things work, and more.

or

Already have an account? Sign in

Wally can make mistakes — verify important info.