Build your SaaS with real metrics in Cursor

  • Real MRR, churn and signups while you code
  • Sanity-check dashboards, pricing and seed data
  • Read-only, no customer names or emails

Chartsy is a hosted, read-only MCP server that gives Cursor's agent your MRR, churn, refunds and site traffic from Stripe, Paddle, Polar, Lemon Squeezy, Creem or Freemius, so the numbers in your code match the business. Last updated October 2026.

Cursor · AgentSample data

Which plan should I raise prices on? Check revenue concentration first.

get_customer_concentrationget_mrr_by_plan2 ChartsyAI questions

Starter is the safer test.

  • Top 10 customers are 31% of MRR, almost all on Business.
  • Starter: 412 customers, none bigger than 1% of MRR.
  • RiskA Business price change puts your largest accounts at risk.
Sample figures for a made-up business.
Setup

How to add Chartsy to Cursor

A token and one config file. Nothing to install: the server is hosted.

  1. 1ConnectAbout 2 minutes

    Add Chartsy with a token

    1. In Chartsy, open Settings → Claude & MCP and click Generate token
    2. Set it as CHARTSY_MCP_TOKEN in your shell profile
    3. Paste this into ~/.cursor/mcp.json and restart Cursor
    ~/.cursor/mcp.json
    {
      "mcpServers": {
        "chartsy": {
          "url": "https://mcp.chartsy.app/mcp",
          "headers": {
            "Authorization": "Bearer ${env:CHARTSY_MCP_TOKEN}"
          }
        }
      }
    }

    One-click "Add to Cursor" with Chartsy sign-in is coming soon. The token lasts a year and can be revoked in Chartsy any time.

  2. 2AskRight away

    Ask the agent while you build

    Cursor uses the Chartsy tools when they're relevant, or when you name them. It asks before each call unless you allowlist them.

    Cursor · AgentSample data

    What happened to signups after yesterday's deploy?

    get_daily_snapshot1 ChartsyAI question

    Signups held up.

    • 31 signups yesterday, against a 7-day average of 29.
    • Visits steady, so conversion didn't drop.
    Also try (click to copy)

Using VS Code or Windsurf instead? See Chartsy + VS Code and Chartsy + Windsurf.

Which config?

Global, project or one-click: where should Chartsy go?

Same server and the same numbers. The difference is scope, and where your token lives.

SurfaceWhereSign-inBest for
Global configThis page
~/.cursor/mcp.jsonPersonal token from an env variableYour numbers in every project you open
Project config
.cursor/mcp.json in the repoToken only through ${env:…}, never pasted inOne codebase, for example your SaaS itself
Add to Cursor link
Coming soonChartsy login, approved in the browserThe fastest setup, once Chartsy sign-in works in Cursor
What you can ask

What can you ask Cursor about your SaaS metrics?

Questions developers ask while building their own SaaS. The agent picks the tools, so the calls can vary.

Cursor · AgentSample data

Which plan should I raise prices on? Check revenue concentration first.

get_customer_concentrationget_mrr_by_plan~2 questions

Starter is the safer test.

  • Top 10 customers are 31% of MRR, almost all on Business.
  • Starter has many small customers, so one loss barely moves MRR.

Sample figures for a made-up business.

More in the MCP prompt library.

Keep secrets out of git

Where should the Chartsy token live?

In an environment variable. Cursor reads it when it starts, and the config file stays safe to commit.

  • Export CHARTSY_MCP_TOKEN in your shell profile or system environment
  • Reference it as ${env:CHARTSY_MCP_TOKEN}, never the token itself
  • Cursor can't read an envFile for remote servers, so use a real env variable
  • Rotate it yearly; revoke it in Chartsy → Settings → Claude & MCP
MCP server reference
~/.zshrc
# Chartsy token for Cursor (and other MCP clients)
export CHARTSY_MCP_TOKEN="<your-chartsy-token>"

# then restart Cursor so it picks it up
New: revenue by channel

Which channels bring paying customers?

Signups only tell you half the story. Cursor can now follow each channel into your billing data, so you see which ones bring customers who pay and stay.

  • Paying customers, MRR today, churn and retention for each source, medium, UTM campaign or individual post
  • Signup-to-paid rate, the early signal for a channel that's only weeks old
  • First touch (where they found you) or last touch (what made them sign up)
  • Decide where next month's marketing time and budget go, from revenue rather than clicks

Needs the Chartsy tracking script on your site and a connected payment provider. Groups under 5 paying customers are flagged as inconclusive, and retention needs about 90 days to mean much.

Cursor · AgentSample data

Which channels brought paying customers last quarter, and what are they worth now?

get_revenue_by_source1 ChartsyAI question

Search brings the most money; the newsletter converts best.

  • Google: 14 paying customers, $1,260 MRR today, 11% of signups paid.
  • Newsletter: 6 paying, $690 MRR, 16% of signups paid.
  • RiskReddit: 3 paying customers, too few to call yet.
Sample figures for a made-up business.
Growth loop skill

Turn what worked into next week's posts

The Chartsy growth-loop skill teaches Cursor a weekly routine: check which channels and posts brought paying customers, recommend where to focus, and draft next week's posts with tracked links for you to review. Connect Postiz or Publer too and the drafts are saved there, never published. Chartsy stays read-only.

  1. Run the command to install both Chartsy skills for Cursor, then restart it.
  2. Keep the Chartsy server from step 1 connected.
  3. Optional: connect your publishing tool (Postiz or Publer) so posts are saved there as drafts.
  4. Ask: "Plan next week's posts based on what brought paying customers."
View the skill
Install the skills
npx skills add sprifti/chartsy-agent -a cursor -g
Ask Cursor
> Plan next week's posts based on what brought paying customers.

  get_revenue_by_source · by=campaign

Comparison posts brought 5 of 9 new paying
customers. Three drafts below, each with a
UTM link so next week is measurable.

# Sample answer for a made-up business
What Chartsy gives Cursor

19 read-only tools Cursor can use

The same numbers as your Chartsy dashboard. They appear under Available Tools for the chartsy server.

Revenue 6

  • Current MRRget_mrr
  • MRR by plan, over timeget_mrr_by_plan
  • MRR by countryget_mrr_by_country
  • Revenue by plan, country or payment methodget_revenue_breakdown
  • Refunds and refund ratio by planget_refund_summary
  • Progress on your goalsget_goal_progress

Customers & churn 5

  • Churn rate by periodget_churn_rate
  • New subscribers per periodget_new_subscribers
  • At-risk customerslist_at_risk_customers
  • Top customers by lifetime revenuelist_top_customers
  • MRR concentrationget_customer_concentration

Site traffic 4

  • The sites you tracklist_tracked_sites
  • Visits, visitors and signupsget_site_traffic
  • Traffic by source, campaign or pageget_traffic_sources
  • Tracked events vs your planget_monthly_events_usage

Marketing & attribution 1

  • Paying customers and MRR by channel, campaign or postget_revenue_by_source

Everything at once 3

  • Full business reviewget_business_snapshot
  • Yesterday vs the 7-day averageget_daily_snapshot
  • Accounts your login can readlist_accounts
Privacy & limits

What Cursor can and can't see

Numbers and customer IDs reach the agent. Names, emails and write access never do.

  • Read-only

    Cursor can read your numbers. It can't change Chartsy, your payment provider's data, or your customers.

  • IDs, not names

    Customers are payment-processor IDs; names and emails stay in Chartsy. Cursor sees only the accounts and sites your login owns, checked on every call.

  • One question per tool call

    Each call uses one ChartsyAI question from your monthly allowance, failed calls included. Broad questions usually take one call.

Troubleshooting

What to do if Cursor can't use Chartsy

Most problems are the token or a restart.

Cursor shows no Chartsy tools

Check that ~/.cursor/mcp.json is valid JSON with a chartsy server, then restart Cursor. The tools appear under Available Tools for that server once it connects.

Chartsy returns 401 or "unauthorized" in Cursor

Cursor didn't get your token. Make sure CHARTSY_MCP_TOKEN is set in the environment Cursor starts from (restart Cursor after exporting it), and that the token hasn't expired or been revoked in Chartsy.

Cursor asks before every Chartsy call

That's Cursor's default for MCP tools. Allowlist the Chartsy tools in your run mode if you want them to run without asking; they're all read-only.

Cursor says "no connected payment provider yet"

Connect Stripe, Paddle, Polar, Lemon Squeezy, Creem or Freemius in Chartsy and let the first sync finish. The demo data added at signup doesn't count.

Answers stopped working this month

Each tool call uses one ChartsyAI question, failed calls included. When your monthly allowance is used up, calls stop until it resets on the 1st, or until you upgrade your Chartsy plan.

FAQ

Chartsy for Cursor: frequently asked questions

Short answers for developers.

How do I add Chartsy to Cursor?

Generate a token in Chartsy under Settings → Claude & MCP, export it as CHARTSY_MCP_TOKEN, and add a chartsy server to ~/.cursor/mcp.json with url https://mcp.chartsy.app/mcp and the header Authorization: Bearer ${env:CHARTSY_MCP_TOKEN}. Restart Cursor.

Why a token instead of signing in?

Signing in to Chartsy from Cursor is coming soon. Until then a personal token is the way to connect: it lasts a year, is read-only like everything else, and can be revoked in Chartsy at any time.

Does the agent see customer data in my codebase context?

No customer names or emails. Chartsy returns numbers and payment-processor IDs only (such as a Stripe or Paddle customer ID), so nothing personal ends up in your prompts, code or seed data.

How many ChartsyAI questions does Cursor use?

One per tool call, failed calls included. Most questions take one or two calls; "what happened yesterday?" is a single get_daily_snapshot call. Long agent runs that check numbers repeatedly use more.

Is Chartsy for Cursor free?

Connecting costs nothing extra. It works on any Chartsy plan, including the free trial, and each tool call uses one ChartsyAI question from your plan's monthly allowance.

Which payment providers does it work with?

Cursor reads whatever you have connected to Chartsy: Stripe, Paddle, Polar, Lemon Squeezy, Creem, Freemius or a custom source through the Chartsy API.

Can Cursor change my data?

No. All 19 Chartsy tools are read-only. Cursor's agent can't change Chartsy, your payment provider's data, or your customers, even with auto-run on.

How do I remove Chartsy from Cursor?

Delete the chartsy entry from your mcp.json (or disable it under Customize) and restart Cursor. To cut access everywhere, revoke the token in Chartsy under Settings → Claude & MCP.

Can Cursor tell me which marketing channels bring paying customers?

Yes. The get_revenue_by_source tool follows the people who signed up from each source, medium, UTM campaign or post into your billing data, and returns how many became paying customers, what they're worth in MRR today, how many churned and the retention rate. You can choose first touch (where they first found you) or last touch (what made them sign up). It needs the Chartsy tracking script on your site and a connected payment provider. Groups with fewer than 5 paying customers are flagged as too small to call.

Other agents

Use Chartsy in other AI agents

Same server, same numbers. Or see all AI agents and the MCP server reference.

Build with the numbers your business actually has

Connect your payment provider to Chartsy, add one server to Cursor, and ask the agent.

Product names are trademarks of their owners, used only to say what Chartsy works with. Chartsy isn't affiliated with or endorsed by them.

Ministry of Economy and Innovation
Startup Albania

The Chartsy program is realized with the financial support of the Albanian Government through the Ministry of Economy and Innovation, under the Grant 2026 scheme, and is implemented by the Innovation4Albania Agency.