Skip to content

dedalus-labs/sponge-mcp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sponge-mcp

A scaffold for a Sponge MCP server built with dedalus-mcp and DAuth-style credential exchange.

This server follows a DAuth-style credential exchange pattern:

  • Credentials are provided by clients at runtime.
  • The server declares a Connection with SecretKeys.
  • Tool calls dispatch through Dedalus secure connection handles.

Scaffold Scope

  • DAuth-compatible API key authentication (SPONGE_API_KEY).
  • Configurable Sponge base URL via SPONGE_BASE_URL.
  • Read-only wallet inspection tools for the core Sponge wallet API.
  • Includes a smoke ping tool for quick MCP handshake validation.
  • Keeps the implementation intentionally small so Sponge engineers can extend it.

Setup

  1. Create a Sponge API key.
  2. Copy env template:
cp .env.example .env

Required:

  • SPONGE_API_KEY (provided by the MCP client via DAuth credentials in production flows)

Optional:

  • SPONGE_BASE_URL (defaults to https://api.wallet.paysponge.com)
  • DEDALUS_AS_URL (defaults to https://as.dedaluslabs.ai)
  • HOST (defaults to 127.0.0.1)
  • PORT (defaults to 8080)

Run

uv run python src/main.py

Hosted SDK usage

For the current published Dedalus Python SDK, hosted MCP credentials are matched using a slug-derived connection name. For this deploy, use tsion-sponge-mcp when constructing runtime SecretValues:

import os

from dedalus_labs import AsyncDedalus, DedalusRunner
from dedalus_mcp.auth import Connection, SecretKeys, SecretValues

sponge = Connection(
    name="name-of-server", #if name of server is tsion/sponge-mcp use tsion-sponge-mcp
    secrets=SecretKeys(api_key="SPONGE_API_KEY"),
    base_url="https://api.wallet.paysponge.com",
    auth_header_format="Bearer {api_key}",
)
sponge_secrets = SecretValues(sponge, api_key=os.getenv("SPONGE_API_KEY", ""))

client = AsyncDedalus(
    api_key=os.getenv("DEDALUS_API_KEY"),
    as_base_url="https://as.dedaluslabs.ai",
)
runner = DedalusRunner(client)

result = await runner.run(
    input="Use Sponge to get my wallet balances.",
    model="openai/gpt-4.1-mini",
    mcp_servers=["tsion/sponge-mcp"],
    credentials=[sponge_secrets],
)

Tool Surface

  • sponge_get_addresses
  • sponge_get_balances
  • sponge_get_balance
  • sponge_get_transaction_history
  • sponge_get_transaction_status
  • smoke_ping

Notes

  • Sponge wallet endpoints are served from https://api.wallet.paysponge.com.
  • This scaffold is intentionally wallet-only for now; future admin tools can be layered on once Sponge exposes a stable public REST surface for them.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages