Skip to main content
Glama
README.md
# The Stall

Hosted pay-per-call capabilities for agents and developers over MCP and HTTP
x402. The live service currently exposes **301 paid capabilities** with no
subscription or STALL API key required.

> This repository is the public integration and discovery surface. It does not
> contain the seller backend, capability implementations, supplier logic,
> settlement internals, pricing machinery, commercial strategy, runtime data,
> or operating configuration.

## Live endpoints

| Surface | URL |
|---|---|
| Service health | <https://the-stall.intuitek.ai/health> |
| Live catalog, prices, and schemas | <https://the-stall.intuitek.ai/catalog> |
| Streamable HTTP MCP | <https://the-stall.intuitek.ai/mcp> |
| Agent Card | <https://the-stall.intuitek.ai/.well-known/agent.json> |
| x402 discovery | <https://the-stall.intuitek.ai/.well-known/x402> |
| OpenAPI | <https://the-stall.intuitek.ai/openapi.json> |
| Payment methods | <https://the-stall.intuitek.ai/v1/payment-methods> |

The live catalog and the unsigned challenge returned for a specific request are
authoritative. Do not sign using a price copied from a README, search result,
cached registry page, or earlier quote.

## MCP connection

```json
{
  "mcpServers": {
    "the-stall": {
      "type": "streamable-http",
      "url": "https://the-stall.intuitek.ai/mcp"
    }
  }
}
```

MCP discovery is free. A paid tool call that has not supplied a valid x402
payment returns an MCP error result containing the payment challenge; it does
not return paid content.

## HTTP quote

```bash
curl -i 'https://the-stall.intuitek.ai/cap/balance-sheet?ticker=AAPL'
```

The expected unsigned response is HTTP `402` with an x402 v2
`PAYMENT-REQUIRED` header. Current settlement is exact USDC on Base
(`eip155:8453`). See [PAYMENT.md](PAYMENT.md) before authorizing a payment.

## Buyer examples

The included buyer is deliberately buyer-controlled: it validates the network,
asset, STALL recipient, exact amount, authorization lifetime, tool identity,
and an operator-supplied USDC ceiling before signing. Quote mode never loads a
signing key.

```bash
npm ci
npm test
node examples/stall-buyer.mjs quote balance-sheet '{"ticker":"AAPL","period":"quarterly"}'
```

Read [INTEGRATION.md](INTEGRATION.md) for MCP and HTTP payment details. The
public/private boundary is documented in [PUBLIC_BOUNDARY.md](PUBLIC_BOUNDARY.md).

## Coinbase Agentic Wallet CLI

This example uses Coinbase **Agentic Wallet** (`awal`), which is separate from
Coinbase **for Agents** equities MCP and its curated x402 catalog. STALL is not
listed in that equities catalog; this command uses the Agentic Wallet's own
USDC balance.

A Coinbase wallet agent can request a sourced check on a company's liquidity,
debt, and equity from the `balance-sheet` capability before an investment
decision. The result identifies its SEC EDGAR Companyfacts source, filing
periods, and retrieval time. It is filing data, not a trading recommendation.

First inspect the live catalog and the unsigned `402` quote above. After the
buyer has authenticated and set wallet spending limits, the [Coinbase CLI](https://docs.cdp.coinbase.com/agentic-wallet/cli/skills/pay-for-service)
can make a bounded paid request with the same wallet:

```bash
npx awal@latest x402 pay https://the-stall.intuitek.ai/cap/balance-sheet \
  -q '{"ticker":"AAPL","period":"quarterly","limit":4}' \
  --max-amount 21000
```

`21000` is an upper bound of 0.021 USDC in atomic units, not permission to
accept a different recipient or network. If the live quote exceeds that ceiling,
the call must stop. See [PAYMENT.md](PAYMENT.md) for the expected Base USDC
recipient. The buyer decides whether to authorize a payment.

## Current acceptance baseline

The public verification command checks the live contract without paying:

```bash
npm run verify:live
```

The September 26, 2026 baseline is health `200`, catalog `200` with 301 paid
capabilities, unsigned HTTP `402`, MCP initialize/list success, and an MCP
unpaid-call challenge for the same Base USDC recipient and amount.

© 2026 W. Kyle Million / IntuiTek¹

TDQS

B3.2/5.0

Scored across 210 tools

Disambiguation2/5

With 210 tools, many have overlapping purposes (e.g., multiple crypto mover tools, multiple DeFi yield tools, multiple equity price tools). An agent would struggle to choose between similar tools, and the abundance of 'packs' that combine endpoints further blurs distinctions.

Naming Consistency3/5

Tool names use a mostly consistent snake_case pattern and are descriptive, but there is variation between noun-heavy names and occasional verb-initial names (e.g., 'generate-meme', 'roast', 'ping'). The pattern is not fully uniform, but not chaotic.

Tool Count1/5

210 tools is far too many for a coherent server. This count overwhelms an agent with choices and indicates a lack of focused scope. The server appears to be a collection of disparate endpoints rather than a curated set for a specific domain.

Completeness2/5

While the tool surface covers many areas (crypto, equities, weather, news, etc.), there are significant gaps within each domain (e.g., no full transaction history for wallets, missing certain financial derivatives). The server feels like a grab bag rather than a complete solution for any single domain.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive