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.3.tar.gz (36.0 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.3-py3-none-any.whl (43.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: interline-0.1.3.tar.gz
  • Upload date:
  • Size: 36.0 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.3.tar.gz
Algorithm Hash digest
SHA256 71bfff6ef798bb08f4df2b2d7c51ead8e6764e1af8938060006fd58a311481fe
MD5 210e2f548ee33887caeac426310eac6a
BLAKE2b-256 49b52ae54da4a624d395f7350b520e3016308440e4940d8f69e25ab72e33d12d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: interline-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 43.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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 958636431252580babebf7a5269248f02c686e5be26930603eb92a472c94cb0a
MD5 70ed22254ae1f911b6297dedae8dffcb
BLAKE2b-256 51ccc179c800b91d423bd60f6efdf93b09b47d529f2719304bc2aa18467aea45

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