Chartsy is a hosted, read-only MCP server that gives Hermes Agent, Nous Research's open-source agent, your MRR, churn, refunds and site traffic from Stripe, Paddle, Polar, Lemon Squeezy, Creem or Freemius, plus which channels bring paying customers. A weekday morning brief uses about 22 ChartsyAI questions a month. Last updated October 2026.
What happened yesterday in Chartsy? Three lines, flag anything unusual.
Good morning. A strong Monday.
A few lines of YAML, one sign-in, one cron job. The server is hosted, so there's nothing else to run.
~/.hermes/config.yamlchartsy under mcp_servers with auth: oauthmcp_servers:
chartsy:
url: "https://mcp.chartsy.app/mcp"
auth: oauth--flow devicehermes mcp login chartsy hermes mcp test chartsy
Hermes caches the sign-in in ~/.hermes/mcp-tokens/chartsy.json, readable only by your user.
hermes cron create "0 8 * * 1-5" \ "What happened yesterday in Chartsy? Three lines, flag anything unusual." \ --deliver telegram
Running OpenClaw instead? See Chartsy + OpenClaw. How the brief works: the daily business brief.
The server gives Hermes the numbers. Pick how it signs in by where it runs; the skill is optional.
| Surface | Set with | Lasts | Best for |
|---|---|---|---|
Chartsy sign-inThis page | auth: oauth, then hermes mcp login chartsy | Refreshes itself while in use | Hermes on your laptop, or a server you check on |
Personal token | headers with ${CHARTSY_MCP_TOKEN} from ~/.hermes/.env | A year; revoke any time | Cron jobs that must never stall on an expired sign-in |
Chartsy skills | npx skills add … -a hermes-agent | Until you remove them | Better tool choices and the weekly growth loop |
Message it from Telegram or Slack, or put a question on cron. Hermes picks the tools, so the calls can vary.
What happened yesterday in Chartsy? Three lines, flag anything unusual.
A strong Monday.
Scheduled for weekdays: about 22 ChartsyAI questions a month.
Which channels brought paying customers this month?
Search and the newsletter, in that order.
Sample figures for a made-up business.
How's MRR this month compared with last month?
MRR is $21,300, up 4% on last month.
Sample figures for a made-up business.
Am I on track for my $25k MRR goal?
Close, but behind the pace.
Sample figures for a made-up business.
Every Monday, send me last week's new subscribers and churn.
Hermes sets up a weekly cron job and sends:
Two calls a week: about 9 ChartsyAI questions a month.
Investor call in 10 minutes. Give me MRR, growth and churn.
Three numbers to lead with:
Sample figures for a made-up business.
More in the MCP prompt library.
A second cron job checks yesterday and stays quiet unless refunds or cancellations jump: a reply containing [SILENT] isn't delivered. Keep it in a private chat; revenue numbers don't belong in public channels.
hermes cron create "0 9 * * *" \ "Check yesterday in Chartsy. If refunds and cancellations are at or below the 7-day average, reply [SILENT]. Otherwise say what's off." \ --deliver telegram
Signups only tell you half the story. Hermes Agent can now follow each channel into your billing data, so you see which ones bring customers who pay and stay.
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.
Which channels brought paying customers last quarter, and what are they worth now?
Search brings the most money; the newsletter converts best.
The Chartsy growth-loop skill teaches Hermes Agent 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.
Installs to ~/.hermes/skills/. A cron job can load it with --skill chartsy-growth-loop.
npx skills add sprifti/chartsy-agent -a hermes-agent -g
> 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
The same numbers as your Chartsy dashboard. Narrow them with tools.include on the chartsy entry if a job needs only a few.
get_mrrget_mrr_by_planget_mrr_by_countryget_revenue_breakdownget_refund_summaryget_goal_progressget_churn_rateget_new_subscriberslist_at_risk_customerslist_top_customersget_customer_concentrationlist_tracked_sitesget_site_trafficget_traffic_sourcesget_monthly_events_usageget_revenue_by_sourceget_business_snapshotget_daily_snapshotlist_accountsNumbers and customer IDs reach your agent. Names, emails and write access never do.
Hermes Agent can read your numbers. It can't change Chartsy, your payment provider's data, or your customers.
Customers are payment-processor IDs; names and emails stay in Chartsy. Hermes Agent sees only the accounts and sites your login owns, checked on every call.
Each call uses one ChartsyAI question from your monthly allowance, failed calls included. Broad questions usually take one call.
Most problems are the sign-in on a headless host, or a token Hermes can't see.
On a host with no browser, hermes mcp login chartsy prints a link. Open it on another device, approve access, and paste the redirect URL back into the terminal. Or run hermes mcp login chartsy --flow device and enter the code on another device.
The saved sign-in couldn't refresh. Run hermes mcp login chartsy again. For jobs that must never stall, switch the chartsy entry to a personal token in headers instead of auth: oauth.
Hermes can't see the token, or it was revoked. Check that CHARTSY_MCP_TOKEN is in ~/.hermes/.env and the header reads "Bearer ${CHARTSY_MCP_TOKEN}", then run hermes mcp test chartsy. Generate a new token if the old one was revoked or expired.
Check the url is exactly https://mcp.chartsy.app/mcp and that chartsy is indented under mcp_servers. YAML is strict about spaces.
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.
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.
Short answers for people running their own Hermes Agent.
Add a chartsy entry under mcp_servers in ~/.hermes/config.yaml with url https://mcp.chartsy.app/mcp and auth: oauth. Then run hermes mcp login chartsy, approve access with your Chartsy login, and run hermes mcp test chartsy to check it.
A sign-in is simplest when you can reach a browser. For cron jobs that run unattended, a personal token is safer: generate one in Chartsy → Settings → Claude & MCP, put it in ~/.hermes/.env as CHARTSY_MCP_TOKEN, and send it as an Authorization header. It lasts a year and never needs a sign-in.
In ~/.hermes/.env, not in config.yaml. Hermes fills ${CHARTSY_MCP_TOKEN} in the header when it connects, so the token never sits in a file you might share or commit. It reads your Chartsy data for a year unless you revoke it.
One per run. A weekday morning brief is one get_daily_snapshot call, so about 22 questions a month. A daily alert check adds about 30. Failed calls count too.
Yes. A cron job with --deliver sends to any platform your Hermes is connected to, including Telegram, Slack, Discord, WhatsApp, Signal and email. Use a private chat: revenue numbers shouldn't go to public channels.
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.
Hermes reads whatever you have connected to Chartsy: Stripe, Paddle, Polar, Lemon Squeezy, Creem, Freemius or a custom source through the Chartsy API.
No. All 19 Chartsy tools are read-only. Hermes can't change Chartsy, your payment provider's data, or your customers.
Remove the chartsy entry from ~/.hermes/config.yaml, remove its cron jobs with hermes cron list and hermes cron remove, and delete ~/.hermes/mcp-tokens/chartsy.json. To cut access everywhere, revoke it in Chartsy under Settings → Claude & MCP.
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.
Same server, same numbers. Or see all AI agents and the MCP server reference.
Connect your payment provider to Chartsy, add the server to Hermes, and schedule the morning brief.
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 AlbaniaThe 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.