Your AI CEO, in every agent you use

TOPY.AI writes and maintains founders’ business plans and keeps their CEO records. The same 423 tools are available to Claude, ChatGPT, Cursor, your terminal and your own code — one remote MCP server, one set of rules.

MCP serverhttps://topy.ai/mcp

Pick your assistant

Claude

Settings → Connectors → Add custom connector. Paste the MCP URL and sign in to TOPY when asked.

https://topy.ai/mcp

ChatGPT

Settings → Apps & Connectors → Create (developer mode). Use the MCP URL with OAuth.

https://topy.ai/mcp

Claude Code

Add the remote server, then run /mcp to sign in.

claude mcp add --transport http topy https://topy.ai/mcp

Cursor and other MCP clients

Add a remote MCP server with this URL; the client handles the OAuth sign-in.

{ "mcpServers": { "topy": { "url": "https://topy.ai/mcp" } } }

Terminal

The ceo-cli command runs every tool; changes preview first and ask before they run.

npm i -g @topy-ai/ceo-cli
ceo-cli login
ceo-cli plans_list

Local MCP server

For clients that only start a command: the same tools over stdio, with your sign-in or TOPY_API_KEY.

npx -y @topy-ai/ceo-mcp login
npx -y @topy-ai/ceo-mcp

Skills for your agent

42 AI CEO skills for Claude Code, Codex, Cursor, Gemini CLI and 16 more agents: plans and revisions, strategy, fundraising, finance, operations, leadership.

npx @topy-ai/ceo-skills install

Nothing changes without you

Your account, your permissions

Every tool runs as you, through the same API as the dashboard: an agent can never do more than you can.

Changes take two calls

A change first returns a preview. It runs only when the agent calls again with your confirmation — signed, bound to that exact change, valid for 10 minutes.

Credits are shown first

Writing a plan costs 50 credits; the preview shows your balance before and after. Nothing is spent until you confirm.

Read-only access exists

Connect with read access only and the agent never sees a tool that changes anything.

You can see and undo

Every confirmed change is logged (agent_actions_list). Connected apps are listed under API keys and can be disconnected at once.

Guided workflows

Offered as MCP prompts and as ceo-cli prompt <name>.

idea-to-business-plan
Turn an idea into a TOPY project and an investor-ready business plan.
revise-plan
Change a figure, milestone, KPI or the team and update every affected section, as a new version.
investor-ready-check
Review a plan the way a seed investor would and list what to fix first.
investor-update
Draft this period’s investor update from decisions, experiments and the journal.
weekly-ceo-review
Review the week’s decisions, risks and experiments and set next week’s priorities.

423 tools

R0 reads · W1 changes something you can change back · W2 spends credits · W4 deletes for good. Most tools act on one project (project_id). The full catalogue with input schemas: /api/v1/agent/tools.

Account and credits

account_getR0 readsWho is signed in to TOPY.
credits_getR0 readsTOPY credit balance (paid and free), optionally with recent transactions.
entitlements_getR0 readsThe user's plan and which features it includes (AI editing, project and template limits).
dashboard_linkR0 readsA link to a page of the TOPY web app, when the founder asks to see it there. Everything can be done in the chat (credits_buy, integration_connect_link, delegation_set …); only managing API keys needs the web app.
agent_actions_listR0 readsThe changes agents made for this user over MCP or the CLI (newest first), each after the user confirmed it.
standing_permissions_listR0 readsStanding permissions: which of the user's keys (a scheduled agent's) may add which records to which project without a preview, each tool's daily cap and today's use. Granted with standing_permission_grant and revoked with standing_permission_revoke (the founder's decision).
routine_listR0 readsThe project's routines, whatever runs them: TOPY-AI-Routines template instances (runner oneman, claude_ai), OneMan's built-in workflows and Maggie's Ops Autopilot. Each with its owner, status, schedule, daily write limits and last run. Filter by runner, status or kind (template, builtin, autopilot).
routine_getR0 readsOne routine of the project, by id or key (e.g. 'yian.uk/cro-weekly-forecast').
routine_proposeW1 changesPropose a routine for the project from a TOPY-AI-Routines template: it is saved as proposed and nothing runs until the founder (or the CEO within the delegation) approves it. Say why, with the evidence.
routine_decideW2 spends creditsDecide on a routine: approve or resume switches it on, pause stops it, retire ends it, decline drops a request waiting on the founder. The founder's decision runs at once. A scheduled CEO's runs only within the project's delegation (delegation_get) and goes into the decision log; outside it, it waits on the routine as a request for the founder. Give the reason with the evidence.
delegation_getR0 readsThe founder's delegation on this project: what the scheduled CEO may decide about routines on their behalf (approve or resume, pause, which runners, owners and templates, how many active, how often a day). Set with delegation_set, revoked with delegation_revoke (the founder's decision).
task_progressW1 changesMove a cofounder's task on — todo, in_progress or done — with a dated note (what happened, the evidence: an issue closed, a pull request merged). Only tasks a cofounder owns (details.owner_role); the founder's tasks are theirs.
routine_updateW2 spends creditsChange a routine: approve, activate, pause or retire it, move its time, lower its limits. The person's decision: an agent's key can't.
delegation_setW2 spends creditsSet the founder's delegation on this project: what the scheduled CEO may decide about routines on their behalf (approve or resume, pause, which runners, owners and templates, how many active, how often a day) and its authority over Maggie (all, internal or ask). The founder's decision.
delegation_revokeW2 spends creditsRevoke the founder's delegation on this project: every routine decision waits on the founder again.
standing_permission_grantW2 spends creditsLet an agent key add records on this project without a preview, up to a daily cap per tool (standing_permissions_list shows which tools are eligible). Default: the key making the call. The founder's decision.
standing_permission_revokeW2 spends creditsRevoke a standing permission (standing_permissions_list): that key asks again.
founder_preferences_getR0 readsThe founder's timetable: time zone, place, working hours and days, out-and-about days, how many items a day, when the day plan comes and where (slack or dashboard), and notes.
founder_preferences_setW1 changesChange the founder's timetable (only the fields given change). The founder's decision.
google_calendars_chooseW1 changesWhich of the founder's Google calendars count as busy time (ids from google_calendar_status).
google_connect_linkR0 readsThe Google sign-in link for the founder: Google Calendar, plus the ONEMAN service agents given in apps (gmail, drive, sheets, forms, tasks, contacts, analytics). Give the founder the link; signing in is theirs.
calendar_feed_connectW2 spends creditsConnect a calendar by its private feed (an iCal URL), read only, for the day plan.
calendar_feed_disconnectW2 spends creditsRemove a connected calendar feed.
integration_disconnectW3 publicDisconnect a data source from this project (stripe, quickbooks, quickfile, cmo_admin): its KPIs stop syncing. The founder's decision.
company_domain_setW2 spends creditsBind the project's company domain: the cofounders' company context is built from that website.
company_context_editW2 spends creditsEdit the company context every cofounder works from: company fields, or what one cofounder should know (roles: {role: text}).
company_context_regenerateW2 spends creditsRebuild the company context from the website (replace_edited: also overwrite edits).
founder_memory_editW1 changesEdit a note about the founder (text, practice, kind, roles, guidance) or archive it (status archived). The founder's decision.
integration_key_connectW2 spends creditsConnect a data source with the key the founder pasted in this chat: stripe (a restricted key with read access to subscriptions, invoices and customers), quickfile (a personal API token) or cmo_admin (a cmo.so admin key). Its KPIs then fill themselves. Never repeat the key back.
service_keys_listR0 readsWhich outside services have the founder's keys on topy.ai (for ONEMAN's service agents: devto, datafast, sentry, posthog, notion, cloudflare …) and the key names. Never the values.
service_key_setW2 spends creditsKeep the founder's key for an outside service, which they gave in this chat, for ONEMAN's service agents (devto: DEVTO_API_KEY; datafast: DATAFAST_API_KEY or DATAFAST_SITE_KEYS; sentry: SENTRY_TOKEN, SENTRY_ORG; posthog: POSTHOG_PERSONAL_API_KEY, POSTHOG_PROJECT_ID; notion: NOTION_TOKEN; cloudflare: CF_API_TOKEN, CF_ACCOUNT_ID, CF_SITE_TAG). Saved encrypted; never repeat the value back.
service_key_removeW2 spends creditsForget the founder's keys for an outside service.
plan_export_wordR0 readsA link to the business plan as a Word file (15 minutes, no sign-in): give it to the founder.
seis_export_wordR0 readsA link to the SEIS Advance Assurance application as a Word file, from the text plan_seis_assurance returned (15 minutes, no sign-in): give it to the founder.
deck_export_pptxR0 readsA link to the pitch deck as a PowerPoint file (15 minutes, no sign-in): give it to the founder.
project_section_suggestR0 readsAI rewrite of one section of the project profile with an instruction (as the profile page does): returns the edited section and a note; nothing is saved until project_update.
media_uploadW1 changesUpload a picture the founder gave in the chat (JPEG, PNG, GIF or WebP, at most 10 MB) to their TOPY media; returns its media id and URL.
project_create_from_documentW2 spends creditsCreate a project from a document the founder gave in the chat (PDF, Word or text): TOPY reads it and fills the profile (a job: project_job_get).
data_room_document_addW1 changesPut a document the founder gave in the chat (PDF, Word, text or Markdown) into a data room folder, as its text.
credits_buyW1 changesA Stripe checkout page to buy a TOPY credit pack (entitlements_get lists them). Give the founder the link: paying happens on Stripe.
plan_subscribeW1 changesA Stripe checkout page to subscribe to a TOPY plan. Give the founder the link: paying happens on Stripe.
billing_portalW1 changesThe Stripe billing portal for the founder's subscription (change, cancel, invoices, card).
site_statusR0 readsThe founder's personal site: claimed subdomain and custom domains with their status (claims and hostnames), and LinkedIn verification.
site_hostnamesR0 readsThe site's hostnames (subdomain and custom domains) with ids and DNS / certificate status.
site_subdomain_availableR0 readsWhether a subdomain label is free.
site_subdomain_claimW2 spends creditsClaim a subdomain for the founder's site.
site_custom_domain_addW2 spends creditsConnect the founder's own domain to their site (gives the DNS records to add).
site_custom_domain_statusR0 readsA custom domain's DNS and certificate status.
site_hostname_removeW3 publicRemove a hostname from the founder's site.
site_contextR0 readsWhat the site builder knows (profile, sections, presets) to plan a site.
site_generateW2 spends creditsGenerate the founder's site with AI from their profile and a brief (a draft to preview).
site_previewW1 changesRender a preview of the site with the given content (nothing is published).
site_publishW2 spends creditsPublish the reviewed site to the founder's hostnames.
site_templatesR0 readsCommunity site templates to start from.
site_template_publishW2 spends creditsPublish the site from a community template.
site_bio_editW1 changesEdit the site's bio with an instruction (AI).
site_element_editW2 spends creditsChange one element of the live site with an instruction (AI).
site_homepage_getR0 readsThe site's homepage content.
site_homepage_setW1 changesChange the homepage content (a draft until published).
site_homepage_publishW2 spends creditsPublish the homepage.
site_posts_listR0 readsThe posts on the founder's site (drafts and published).
site_post_generateW1 changesDraft a post with AI (a preview: nothing is saved).
site_post_saveW1 changesSave a post on the site as a draft.
site_post_updateW1 changesChange a post.
site_post_deleteW3 publicDelete a post.
site_post_publishW2 spends creditsPublish a post on the site.
site_post_unpublishW2 spends creditsTake a post off the site.
linkedin_connect_linkR0 readsThe LinkedIn sign-in link to verify the founder (claim) or to let the site publish to LinkedIn (publishing). Signing in is theirs.

Projects

projects_listR0 readsThe user's projects (the companies or ideas TOPY works on). Most tools take one as project_id.
project_getR0 readsA project's details: what it does, market, industry, keywords and website.
project_updateW1 changesChange a project's details. Changes the project given as project_id.
project_create_from_ideaW1 changesCreate a project from an idea: a title and a description of the business. (runs an AI generation.)
project_create_from_websiteW1 changesCreate a project by reading an existing website (runs as a job; follow it with project_job_get). (runs an AI generation.)
project_job_getR0 readsProgress of a project job (created from a website or upload).
project_deleteW1 changesArchive a project (restorable with project_restore).
project_restoreW1 changesRestore an archived project.

Ideas

ideas_generateW1 changesGenerate startup ideas around a topic or market. (runs an AI generation.)
idea_getR0 readsOne idea with its details.
idea_brainstormW1 changesBrainstorm an idea in depth (by idea_id, or a free-text term): market, competitors, angles. (runs an AI generation.)
idea_to_projectW1 changesTurn a saved idea into a project.

Business plans

plan_options_getR0 readsBusiness plan templates, purposes, audiences and writing styles for a project, with the recommended template. Use these ids exactly.
plans_listR0 readsList a project's business plans (summaries with status, words and section list).
plan_getR0 readsA business plan: summary and section list; set full for the whole Markdown or section for one section's Markdown.
plan_statusR0 readsGeneration progress of a plan (or of a job: a generation, revision, Markdown fix or impact analysis).
plan_estimateR0 readsWhat a business plan generation costs in TOPY credits against the current balance (no charge).
plan_generateW2 spends creditsStart writing a new business plan for a project with a template, purpose, audience and style from plan_options_get (about 7 minutes). Costs 50 TOPY credits. (spends TOPY credits; runs an AI generation.)
plan_job_cancelW1 changesCancel a queued or running business plan job.
plan_job_retryW2 spends creditsRetry a failed business plan generation. Costs 50 TOPY credits again (a failed job was refunded). (spends TOPY credits; runs an AI generation.)
plan_updateW1 changesReplace a plan's Markdown: one section (with section) or the whole plan. Use for edits the user wrote or accepted.
plan_renameW1 changesRename a business plan or star it.
plan_deleteW1 changesArchive a business plan (restorable with plan_restore).
plan_restoreW1 changesRestore an archived business plan.
plan_section_suggestR0 readsAsk the AI to rewrite one section from an instruction. Returns a suggestion only; nothing changes until plan_update. (runs an AI generation; needs a plan with the AI features.)
plan_section_regenerateW1 changesRewrite one section from scratch with the plan's writer (replaces that section). (runs an AI generation; needs a plan with the AI features.)
plan_fix_markdownW1 changesFix the Markdown of every section (diagrams to tables, no code blocks or HTML) without changing the content. Runs as a job; follow it with plan_status. (runs an AI generation; needs a plan with the AI features.)
plan_revise_analyzeR0 readsWork out what a change (a figure, milestone, KPI or the team) means for the whole plan: old -> new facts, derived figures and the impact on each section. Changes nothing and costs no credits; follow the job with plan_status, then show the result to the user. (runs an AI generation; needs a plan with the AI features.)
plan_revise_applyW1 changesWrite a change into a NEW version of the plan, updating the affected sections in order with a final consistency check (the source plan is kept, no credits). Needs a finished plan_revise_analyze. (runs an AI generation; needs a plan with the AI features.)
plan_exportR0 readsA business plan as Markdown (plan_export_word gives the Word file as a link).
plan_seis_assuranceR0 readsDraft the answers for a UK SEIS Advance Assurance application from a finished plan. (runs an AI generation; needs a plan with the AI features.)
plan_defaults_setW1 changesSet the project's default template, purpose, audience and style for new plans.

Templates

templates_listR0 readsThe official business plan templates and the user's own templates for a project.
template_createW1 changesCreate a custom template: clone an official or custom one, have the AI build one from a requirement (ai_prompt), or from a document's text (upload_file). (runs an AI generation.)
template_updateW1 changesChange a custom template: name, description, industry or its structure (template_json).
template_deleteW1 changesArchive a custom template (restorable).
template_restoreW1 changesRestore an archived custom template.
template_starW1 changesStar or unstar a template (official or custom).
template_assistantR0 readsAsk the AI to change a custom template's structure from an instruction. Returns a suggestion only; keep it with template_update. (runs an AI generation; needs a plan with the AI features.)

CEO workspace records

research_sources_listR0 readsList the project's records of a research source (market data, article, interview) behind the project's claims.
research_source_getR0 readsOne record of a research source (market data, article, interview) behind the project's claims.
research_source_createW1 changesAdd a research source (market data, article, interview) behind the project's claims.
research_source_updateW1 changesChange a research source (market data, article, interview) behind the project's claims.
research_source_deleteW4 deletes for goodDelete a research source (market data, article, interview) behind the project's claims permanently.
decisions_listR0 readsList the project's records of a decision the founder made, with its context and reasoning.
decision_getR0 readsOne record of a decision the founder made, with its context and reasoning.
decision_createW1 changesAdd a decision the founder made, with its context and reasoning.
decision_updateW1 changesChange a decision the founder made, with its context and reasoning.
decision_deleteW4 deletes for goodDelete a decision the founder made, with its context and reasoning permanently.
journal_entries_listR0 readsList the project's records of a founder journal entry.
journal_entry_getR0 readsOne record of a founder journal entry.
journal_entry_createW1 changesAdd a founder journal entry.
journal_entry_updateW1 changesChange a founder journal entry.
journal_entry_deleteW4 deletes for goodDelete a founder journal entry permanently.
gtm_plans_listR0 readsList the project's records of a go-to-market plan.
gtm_plan_getR0 readsOne record of a go-to-market plan.
gtm_plan_createW1 changesAdd a go-to-market plan.
gtm_plan_updateW1 changesChange a go-to-market plan.
gtm_plan_deleteW4 deletes for goodDelete a go-to-market plan permanently.
memories_listR0 readsList the project's records of a fact or preference to remember about the project.
memory_getR0 readsOne record of a fact or preference to remember about the project.
memory_createW1 changesAdd a fact or preference to remember about the project.
memory_updateW1 changesChange a fact or preference to remember about the project.
memory_deleteW4 deletes for goodDelete a fact or preference to remember about the project permanently.
risks_listR0 readsList the project's records of a risk with its likelihood, impact and mitigation.
risk_getR0 readsOne record of a risk with its likelihood, impact and mitigation.
risk_createW1 changesAdd a risk with its likelihood, impact and mitigation.
risk_updateW1 changesChange a risk with its likelihood, impact and mitigation.
risk_deleteW4 deletes for goodDelete a risk with its likelihood, impact and mitigation permanently.
investor_contacts_listR0 readsList the project's records of an investor contact in the fundraising pipeline.
investor_contact_getR0 readsOne record of an investor contact in the fundraising pipeline.
investor_contact_createW1 changesAdd an investor contact in the fundraising pipeline.
investor_contact_updateW1 changesChange an investor contact in the fundraising pipeline.
investor_contact_deleteW4 deletes for goodDelete an investor contact in the fundraising pipeline permanently.
investor_updates_listR0 readsList the project's records of an investor update (a periodic letter to investors).
investor_update_getR0 readsOne record of an investor update (a periodic letter to investors).
investor_update_createW1 changesAdd an investor update (a periodic letter to investors).
investor_update_updateW1 changesChange an investor update (a periodic letter to investors).
investor_update_deleteW4 deletes for goodDelete an investor update (a periodic letter to investors) permanently.
growth_experiments_listR0 readsList the project's records of a growth experiment with its hypothesis, metric and result.
growth_experiment_getR0 readsOne record of a growth experiment with its hypothesis, metric and result.
growth_experiment_createW1 changesAdd a growth experiment with its hypothesis, metric and result.
growth_experiment_updateW1 changesChange a growth experiment with its hypothesis, metric and result.
growth_experiment_deleteW4 deletes for goodDelete a growth experiment with its hypothesis, metric and result permanently.
memory_contextR0 readsWhat the AI cofounders remember about this project (topy-memory): the founder's preferences, the project's conventions, lessons from fixed mistakes and recent errors — active and unexpired only, the most relevant first. Read it at the start of work on a project and follow it; `markdown` gives the repo's .topy/memory.md. `founder` is who the founder is as a person, as the CEO keeps it for you (with role): fit your work to it, and for_you says what a note means for your work.
memory_rememberW1 changesRemember something about this project for every cofounder: a preference of the founder, a convention of the project, or a lesson from a fixed mistake (with the problem, the solution and the evidence). It is a candidate until the founder confirms it — status active only when they said so. Never a key, token or password.
memory_reviewW1 changesConfirm a candidate (active), or retire an item (superseded, archived) — history is kept, never deleted.
memory_record_errorW1 changesRecord a failure in the project's error history (the same fingerprint counts again instead of repeating). A fixed error needs its resolution and how the fix was validated; it never becomes a lesson by itself.

Media library

media_listR0 readsThe user's media library: images uploaded to TOPY or registered by URL (newest first, up to 200).
media_add_urlW1 changesAdd an image to the media library by its URL (stored as a link; nothing is downloaded).
media_deleteW4 deletes for goodDelete an item from the media library permanently.

REST API

Everything the tools do is also plain HTTP under https://topy.ai/api/v1, with a bearer token: an API key from Dashboard → API keys (read-only or read-write) or an OAuth access token. Responses are { code, message, data }.

curl -H "Authorization: Bearer $TOPY_API_KEY" https://topy.ai/api/v1/projects/my