Interline (MCP server)
Rail-discovery + future-proof payments for AI agents — as an MCP server.
Two things your agent gets, today:
- Discover which payment rail(s) any paid endpoint accepts — before paying. (The discovery layer single-rail clients don't have.)
- 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.
discoveronly reads a public 402 challenge;paysigns with your key, locally, bounded bymax_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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.