Skip to main content

Neutral, non-custodial MCP server that lets any AI agent pay across payment rails (x402 today, more landing) through one integration — rail-discovery + routing + a unified receipt ledger.

Project description

Interline (MCP server)

Rail-discovery + future-proof payments for AI agents — as an MCP server.

Two things your agent gets, today:

  1. Discover which payment rail(s) any paid endpoint accepts — before paying. (The discovery layer single-rail clients don't have.)
  2. Pay through it — non-custodial, your own key, capped.

And the part that pays off across every rail: integrate once. Three rails are live today — x402 (HTTP 402 + USDC) on EVM (Base Sepolia) and on Solana (devnet), plus MPP on Tempo (Moderato testnet) — all behind the same tool. Real on-chain agent-to-agent settles are confirmed on all three. Every future rail drops in with zero code change. Never re-integrate agent payments again — when the next rail ships, your agent already speaks it.

This is not "another x402 MCP." Single-rail clients make you wire up one rail (and re-wire for the next). This is the discovery + routing layer above them — same shape OpenRouter has for models. Non-custodial by design: payments use your own wallet key; this server never holds, sees, or routes funds through itself.

Tools

Tool What it does
discover_payment_rails(url) Probe a paid endpoint; report which rails + prices it accepts. No payment. The discovery layer.
pay_for_resource(url, task, max_price_usdc) Pay + fetch through the accepted rail; return content + a settlement receipt. Never exceeds max_price_usdc.
payment_history(limit) The unified cross-rail receipt ledger — every settlement, every rail, one view.

Install

pip install interline        # (or: uvx interline)

Add to Claude Desktop / Cursor / any MCP client

{
  "mcpServers": {
    "interline": {
      "command": "uvx",
      "args": ["interline"],
      "env": {
        "APV0_BUYER_PRIVATE_KEY": "0x...",   // YOUR wallet key — stays in your env, never leaves your machine
        "APV0_NETWORK": "base-sepolia"        // or "base" for mainnet
      }
    }
  }
}

Local dev (from a clone):

{ "mcpServers": { "interline": {
    "command": "python", "args": ["-m", "mcp_router.server"],
    "cwd": "/path/to/interline-routes",
    "env": { "APV0_BUYER_PRIVATE_KEY": "0x...", "APV0_NETWORK": "base-sepolia" }
}}}

discover_payment_rails needs no key (it only reads the 402 challenge). pay_for_resource needs APV0_BUYER_PRIVATE_KEY (your funded wallet).

Non-custodial guarantee

  • The router never holds funds. discover only reads a public 402 challenge; pay signs with your key, locally, bounded by max_price_usdc.
  • The fee model (when one exists) is a software/routing fee billed to you, the developer — never a cut of the funds flow. That's the line between software (this) and money transmission (not this).

Status

Three rails live — x402 USDC on EVM (Base Sepolia) and on Solana (devnet), plus MPP on Tempo (Moderato testnet). Real on-chain agent-to-agent settles confirmed on all three. Neutral by construction: discover_payment_rails surfaces any rail an endpoint offers, and each additional rail is a drop-in adapter with no caller change. Built on the interline-routes rail-agnostic core.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

interline-0.1.0.tar.gz (34.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

interline-0.1.0-py3-none-any.whl (41.2 kB view details)

Uploaded Python 3

File details

Details for the file interline-0.1.0.tar.gz.

File metadata

  • Download URL: interline-0.1.0.tar.gz
  • Upload date:
  • Size: 34.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.2

File hashes

Hashes for interline-0.1.0.tar.gz
Algorithm Hash digest
SHA256 dc4c012dedea3db9732391ec02054264bfdac5e5f7f7460b6fec21a830047b05
MD5 a3ee7cf3379545dd706e69b69aec9619
BLAKE2b-256 955a9a903456e37701e140c046f78e63443260f0ff7942a2f34192512be4d59e

See more details on using hashes here.

File details

Details for the file interline-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: interline-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 41.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.2

File hashes

Hashes for interline-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3227f43c7bf4bd643ea5be6bb825a8f5da08b7d994e35a4c976141f2a2f93680
MD5 3398ac881ab38caebcc3692a2a99e4ab
BLAKE2b-256 cafe2de1ef03964327021a9b06e34122b51c0b2e5a770b147c2ee3e6eb88a396

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page