How We Deployed MCP-to-MCP Communications in Seren's MCP Server
Publishers can now connect their MCP servers directly to Seren—no REST APIs, no webhook plumbing, just native MCP protocol with pay-per-call built in.

Why We Built This
We launched Seren MCP Server to connect AI agents with data publishers. Our initial design routed everything through REST APIs—agents called our MCP server, we translated to HTTP, forwarded to upstream APIs, and passed responses back.
It worked. But when we onboarded new publishers, we kept hearing the same feedback:
We already have an MCP server. Can't you just talk to it directly?
Fair point. These publishers had invested in building proper MCP servers with typed tool schemas, streaming support, and structured resources. Forcing them through a REST translation layer meant losing all that.
So we built MCP-to-MCP.

The Architecture Change
The key insight: Seren becomes an MCP-aware proxy, not a protocol translator.

When an agent calls call_mcp_tool(publisher="my-mcp-service", tool_name="analyze"), Seren:
- Authenticates the agent (OAuth or x402 signatures)
- Opens an MCP connection to the publisher's endpoint
- Forwards the tools/call request natively
- Records the call for billing
- Streams the response back to the agent
No REST translation. No JSON schema mismatches. The publisher's tool schemas flow through unchanged.
What Publishers Get
Native MCP protocol. Your existing MCP server works as-is. If you built it with FastMCP or the official mcp-sdk, you're ready.
Instant monetization. Set a price per tool call. Seren handles billing, settlement, and payment disputes. You get paid in USDC to your wallet.
Discovery. Agents find your tools via list_mcp_tools. Your tool descriptions become your marketing copy.
No API key management. Seren handles agent authentication. You just serve MCP requests.
Registering Your MCP Server
Here's the complete flow to publish your MCP server on Seren:
1# 1. Register as an MCP publisher
2curl -X POST "https://api.serendb.com/agent/publishers" \
3 -H "Authorization: Bearer $SEREN_API_KEY" \
4 -H "Content-Type: application/json" \
5 -d '{
6 "name": "My Analysis Service",
7 "slug": "my-analysis-service",
8 "publisher_category": "integration",
9 "integration_type": "mcp",
10 "mcp_endpoint": "https://mcp.myservice.com/mcp",
11 "wallet_address": "0x...",
12 "wallet_network_id": "eip155:8453"
13 }'
14
15# 2. Configure pricing
16curl -X PUT "https://api.serendb.com/agent/publishers/my-analysis-service/pricing" \
17 -H "Authorization: Bearer $SEREN_API_KEY" \
18 -d '{"price_per_call": "0.01", "prepaid_enabled": true}'That's it. Agents can now discover and call your tools with list_mcp_tools and call_mcp_tool.
How Agents Use MCP Publishers
From the agent's perspective, MCP publishers are first-class citizens:
1# Agent discovers your tools
2tools = seren.list_mcp_tools(publisher="my-analysis-service")
3# Returns: [{"name": "analyze_data", "description": "...", "inputSchema": {...}}]
4
5# Agent calls your tool
6result = seren.call_mcp_tool(
7 publisher="my-analysis-service",
8 tool_name="analyze_data",
9 arguments={"data": [1, 2, 3, 4, 5]}
10)
11# Charges $0.01 to agent's SerenBucks balanceResources work too. If your MCP server exposes resources, agents read them via read_mcp_resource.

Supported MCP Capabilities
- Tools: list, call, streaming
- Resources: list, read, subscribe
- Prompts: list, get
Sampling: Not yet supported (v2 roadmap)
Technical Requirements
Your MCP server must:
Use HTTP/SSE transport (Streamable HTTP). Stdio won't work—we need network connectivity.
Be publicly accessible. Seren's gateway connects from our infrastructure.
Support standard MCP methods. At minimum: tools/list and tools/call.
Most MCP frameworks handle this out of the box. Here's a minimal FastMCP example:
1from fastmcp import FastMCP
2
3mcp = FastMCP("My Service")
4
5@mcp.tool()
6def analyze_data(data: list[float]) -> dict:
7 """Analyze numerical data and return statistics."""
8 return {"mean": sum(data) / len(data), "count": len(data)}
9
10if __name__ == "__main__":
11 mcp.run(transport="sse", port=8000)Deploy this anywhere—Fly.io, Railway, your own VPS—and register the endpoint with Seren.
What's Next
We're seeing publishers migrate from REST-based integrations to native MCP. The developer experience is better: no schema translation, proper streaming, typed tool signatures.
If you're building an MCP server and want to monetize it, check out our MCP Publisher Guide. It covers authentication options, pricing models, and troubleshooting.
For agents, MCP publishers appear alongside our database and API publishers. Call list_agent_publishers to see everything available.
Get Started
What is Seren? serendb.com
MCP Publisher Guide: docs.serendb.com/guides/mcp-publishers
Full API Docs: docs.serendb.com
Sign Up Free: console.serendb.com
MCP Specification: modelcontextprotocol.io
Questions? Drop them in comments or join our Discord.

About Taariq Lewis
Exploring how to make developers faster and more productive with AI agents
Related Posts

Claude Code's Local Memory Is a Security Risk, and You Can Verify It Yourself
Claude Code leaves memory and session artifacts on the local filesystem under ~/.claude/projects/, and those artifacts are easy to find and surprisingly rich.

How-To Generate Agentic Income as a Seren Affiliate Partner
Turn your OpenClaw agents into revenue-generating affiliates. Register, refer, and earn USDC on every agent-to-agent API call with Seren's production-grade commission engine — 20% direct, 5% tier 1, 2% tier 2 overrides.

How-To Use Seren's Upgraded Polymarket Trading Bot to Find Trading Edge of 10% or More
The March 30 Polymarket bot upgrade adds calibration-driven thresholds, edge-to-spread gating, depth-constrained sizing, iterative scanning, and seren-cron scheduling. Open source, dry-run first.
