Skip to main content

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.

Metadata

Release files for interline 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for interline 0.1.3
File Size Uploaded Provenance Actions
interline-0.1.3.tar.gz 36.0 kB Without provenance Details for interline-0.1.3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for interline 0.1.3
File Interpreter ABI Platform Actions
interline-0.1.3-py3-none-any.whl Python 3 none any Details for interline-0.1.3-py3-none-any.whl

Total release size: 79.2 kB

Release files / interline-0.1.3.tar.gz

Download URL interline-0.1.3.tar.gz
Size 36.0 kB
Tags Source
SHA-256 checksum
How to use checksums
71bfff6ef798bb08f4df2b2d7c51ead8e6764e1af8938060006fd58a311481fe
BLAKE2b-256 checksum
How to use checksums
49b52ae54da4a624d395f7350b520e3016308440e4940d8f69e25ab72e33d12d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.2

Release files / interline-0.1.3-py3-none-any.whl

Download URL interline-0.1.3-py3-none-any.whl
Size 43.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
958636431252580babebf7a5269248f02c686e5be26930603eb92a472c94cb0a
BLAKE2b-256 checksum
How to use checksums
51ccc179c800b91d423bd60f6efdf93b09b47d529f2719304bc2aa18467aea45
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.2

Security for interline 0.1.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page