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.1.tar.gz (34.6 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.1-py3-none-any.whl (41.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: interline-0.1.1.tar.gz
  • Upload date:
  • Size: 34.6 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.1.tar.gz
Algorithm Hash digest
SHA256 0f5813a9734f95cbb37266e810956d7002dff4cc4b86d75b652a99db807bc53c
MD5 fab831620ef6a2326f3aba0636a22a9b
BLAKE2b-256 7e56a832a6738c8f09db3f072011fced9ac13609bfb0048801bbe9dae448720c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: interline-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 41.4 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f678c8ea4e2290374fa54ae1c8486d5ad52f6da19a2de5c5eeddd077f19360ed
MD5 d25cf1394c35c17721f909ec6c02c792
BLAKE2b-256 4e95ac4a1292af764a3457ebd2152f329083b5e6a90f7b337e143f3a0203b647

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