NachoNacho
NachoNacho

NachoNacho for AI agents

Model Context Protocol server

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_products
Search the marketplace

One query matched across name, descriptions, key benefits, features, pricing, eligibility and offers. Returns paginated summaries, each with a direct sign-up link.

get_product
Full product detail

Everything 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_nachocards
Find cards

By 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_nachocard
Issue a virtual card

A new card for one subscription, optionally stamped with the marketplace deal it pays for and capped with a monthly limit in cents.

update_nachocard_status
Pause, resume or cancel

Suspend a card reversibly, bring it back, or cancel it permanently — with a lost or stolen reason when that is what happened.

find_my_transactions
List settled spend

Newest first, filtered by merchant, card, purchase or refund, amount range, date window, marketplace deal and whether cashback was earned. Paginated, with totals.

my_spend_summary
Total spend

The 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.
whoami
The authenticated user

Name and email of the account behind the token, so an agent can say who it is signed in as.

my_companies
Companies and roles

Every 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

The agent is you, with your permissions

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.

Every connection is visible

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.

Disconnect means disconnected

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.

Nothing to leak on our side

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

Card numbers never cross the wire

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.

The agent inherits your permissions

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.

Spend tools stay hidden until you qualify

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.

Every card records where it came from

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.

Inner left logo orbit
Inner left logo orbit
Inner left logo orbit
Inner left logo orbit
Sticker

Give your agent a spend card.