NachoNacho for AI agents
Connect Claude, Cursor or any MCP-compatible agent to NachoNacho. Search thousands of B2B SaaS & AI deals, issue a virtual NachoCard to pay for one, set its limit, and report on every dollar — from inside the conversation.
Nine tools, end to end
The server started as marketplace search. It now carries the whole loop: find the software, issue the card that pays for it, and report on what it cost — without leaving the conversation.
Marketplace
Open to every signed-in NachoNacho user.search_productsOne query matched across name, descriptions, key benefits, features, pricing, eligibility and offers. Returns paginated summaries, each with a direct sign-up link.
get_productEverything on a product page by its slug: benefits, features, pricing, FAQs, media, reviews, categories, related products and social links — plus the link that redeems the deal.
Spend management
Shown only once the company is onboarded and approved for NachoCards.find_my_nachocardsBy nickname or last 4, across every company the user belongs to. Filter by status, virtual or physical, expired or not, and a creation date window.
create_nachocardA new card for one subscription, optionally stamped with the marketplace deal it pays for and capped with a monthly limit in cents.
update_nachocard_statusSuspend a card reversibly, bring it back, or cancel it permanently — with a lost or stolen reason when that is what happened.
find_my_transactionsNewest first, filtered by merchant, card, purchase or refund, amount range, date window, marketplace deal and whether cashback was earned. Paginated, with totals.
my_spend_summaryThe same spend grouped by merchant, product, card or month, with cashback and transaction counts — one call instead of paging through charges and adding them up.
Account
Who the agent is acting for.whoamiName and email of the account behind the token, so an agent can say who it is signed in as.
my_companiesEvery company the user belongs to and their role in each — what the other tools are scoped to.
Authentication: OAuth, not an API key
These tools move real money, so the connection is a grant you make in your own browser and can take back at any time — not a long-lived secret pasted into a config file where it is impossible to audit and easy to copy.
- 01
Your client registers itself
On first connection the client registers at /oauth/register and gets a client_id back (RFC 7591). Nothing to create in a dashboard, and no client secret — MCP clients are public clients, so a secret in a config file would protect nothing.
- 02
You approve in your own browser
The client opens our authorize endpoint. If you already have a NachoNacho session you are straight through; if not you land on the normal login page and come back. We never re-implement login, and your password never goes near the MCP client.
- 03
The code is exchanged with PKCE
The authorization code is good for two minutes and is redeemed against the verifier the client generated at the start (PKCE, S256, mandatory). Every response carries iss, so the client can confirm the code came from the server it started with.
- 04
The client holds a bearer token
An access token valid for one hour, with a refresh token good for thirty days. The client refreshes on its own — you approve once, not every morning.
There is no service account and no elevated key. A token resolves to your NachoNacho user, scoped to the companies you belong to, through the same checks the app runs on itself. An agent cannot read a company you cannot read, or issue a card the app would refuse.
A grant writes a row on your Integrations settings page, next to Slack and QuickBooks: which client connected, when it first connected, when it last called, which protocol revision it speaks and which tools it has used.
Tokens are bound to that connection, and every authenticated call re-checks that it still exists. Pressing Disconnect cuts the client off on its next request, rather than leaving it working until the token happens to expire.
The authorization server stores no tokens at all — codes, access and refresh tokens are self-contained signed artifacts, and the only copy of your token lives in your client. A suspended or deleted account stops working immediately, at the grant and on every call.
Discovery is where your client expects it: https://mcp.nachonacho.com serves protected resource metadata (RFC 9728) and authorization server metadata (RFC 8414) from the usual .well-known paths, so a compliant client finds all of this on its own.
Connect in under a minute
The server is hosted — nothing to install, nothing to self-host. On first use your client opens NachoNacho in a browser and you approve the connection with your existing account; the client stores the token and reconnects on its own after that.
Clients that support remote MCP servers
Claude, Claude Code, Cursor and anything else that can add a server by URL. Point it at the endpoint — there is no API key to paste.
{
"mcpServers": {
"nachonacho": {
"url": "https://mcp.nachonacho.com"
}
}
}Clients that only run local servers
Use the standard mcp-remote bridge, which turns the hosted endpoint into a local stdio server.
{
"mcpServers": {
"nachonacho": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.nachonacho.com"]
}
}
}The technical details
- Endpoint
- https://mcp.nachonacho.com
- Transport
- Streamable HTTP. Stateless — every request stands on its own, so there is no session to keep alive.
- Protocol revisions
- 2026-07-28, 2025-11-25, 2025-06-18 and 2025-03-26. The current revision needs no initialize handshake; older clients get the handshake they expect.
- Authentication
- OAuth 2.1, authorization_code + refresh_token, PKCE S256 required. Bearer token in the Authorization header.
- Token lifetimes
- Authorization code 2 minutes, access token 1 hour, refresh token 30 days. The client refreshes on its own.
- Client registration
- Dynamic (RFC 7591) at /oauth/register. Public clients: token_endpoint_auth_method is none, so there is no client secret.
- Discovery
- RFC 9728 and RFC 8414 on the usual .well-known paths, plus iss on every authorization response (RFC 9207).
- Scope
- A single mcp scope. The account you approve with is the account the agent acts as — it sees exactly what you see in the app, and nothing more.
What the server will not do
No tool returns a card number, expiry, CVC or PIN — not even to the agent that just created the card. Every card result carries a reveal link instead: the person opens it, signs in, and sees the details in their own browser.
Tools are scoped to the companies you belong to, through the same approved-only checks the app itself enforces. An agent cannot create a card the app would have refused.
A user with no company approved for NachoCards is not offered the card tools at all, so an agent is never told it can spend money that it cannot.
A card created over MCP is stamped as such, and the stamp shows in the app, the API and your card list — so agent spend is never indistinguishable from a person clicking Create.