Skip to main content
Glama
ToDealMarket

TDM MCP Server

Official
by ToDealMarket

TDM MCP Server

Model Context Protocol Server for TDM

npm MCP Compatible License: MIT GitHub stars TypeScript

Session-state checks for AI agents

DocumentationQuick StartGitHubX/Twitter


What is TDM MCP Server?

@tdm/mcp-server is a small MCP stdio server for TDM local session-state checks.

The public GitHub repo for tdm-sdk shows the open contract-facing SDK surface: https://github.com/ToDealMarket/tdm-sdk

The current tdm-sdk npm beta used by the surrounding TDM docs remains broader and includes the CLI/operator flows referenced here.

Inside the broader Integration Kit, this package is the reference MCP implementation. It sits next to:

  • thin CLI and signer wrappers

  • copy-paste framework examples

  • lightweight local integration recipes

████████╗ ██████╗  ███╗   ███╗
╚══██╔══╝ ██╔══██╗ ████╗ ████║
   ██║    ██║  ██║ ██╔████╔██║
   ██║    ██║  ██║ ██║╚██╔╝██║
   ██║    ██████╔╝ ██║ ╚═╝ ██║
   ╚═╝    ╚═════╝  ╚═╝     ╚═╝

TDM CLI [V0.0.2-BETA]
SDK + CLI + MCP
Mode: local-first | Docs: todealmarket.com/docs

Related MCP server: Privy MCP Server

What it helps with

The tool helps an agent decide whether it should:

  • continue

  • ask the user to run tdm connect

  • suggest tdm fuel

  • suggest tdm sweep

Interactive seller commands in tdm-sdk can now auto-start that one-time Live TDM setup when the live runtime is still missing. MCP still keeps the explicit instruction path because an agent should ask the operator before triggering wallet/browser setup on their behalf.

For human operator flows, tdm connect stores the primary wallet locally. The current multi-wallet MVP also supports connecting one wallet per supported network for local signing and network-specific payout setup. During connect, TDM can attempt a safe default payout sync for the same network when that network does not already have a saved payout wallet. It does not overwrite an already saved payout wallet automatically, and tdm connect --no-sync-payout-wallet keeps connect local-only.

If the account protects new payout destinations with TOTP step-up, the operator should run:

tdm security totp enroll
tdm security totp verify --method-id <id> --code 123456

tdm security totp enroll opens a local setup page with a QR by default. Use --no-browser if terminal-only setup is preferred.

It is intentionally local-first:

  • reads local TDM credentials and runtime hints

  • follows TDM_CREDENTIALS_PATH when explicitly set

  • otherwise follows TDM_VAULT or the active vault marker from ~/.tdm/vaults/_active

  • does not depend on deprecated treasury balance routes

  • can use TDM_REMAINING_USDC and TDM_DUST_TOKENS_DETECTED when the host wants to provide fresh snapshot hints

For operators using named vaults, MCP will read the active/default vault context instead of pretending there is only one global runtime forever.

The vault resolution order is explicit:

  • TDM_CREDENTIALS_PATH when you pin one credentials file directly

  • otherwise TDM_VAULT

  • otherwise the active vault marker from ~/.tdm/vaults/_active

  • otherwise the legacy default ~/.tdm/credentials.json

That means one MCP process reads one selected vault contour. It does not merge agents, wallets, or sessions across multiple vaults.

If that active vault has its own optional runtime allowlist, agents in that vault inherit the narrower destination policy. If no project or vault allowlist is configured, MCP keeps the broader flexible runtime posture instead of assuming deny-by-default.

If the operator wants reusable runtime contours, tdm workspace use <name> can switch the active vault/storage combination before MCP starts. MCP still reads local runtime state only; it does not own those runtime workspaces.

Local catalogs and published assets now live next to that same runtime layer in tdm-sdk:

  • tdm storage add

  • tdm storage import-dir

  • tdm storage sync

  • tdm storage watch

  • tdm storage publish

  • tdm workspace

  • tdm status

  • tdm workspace status

MCP itself does not host or upload those files. It can only help an agent or operator decide when to suggest the surrounding CLI workflow.

States

  • FUELED

  • DEPLETED

  • UNINITIALIZED

Representative response fields:

  • state

  • remaining_usdc

  • wallet_linked

  • dust_tokens_detected

  • agent_instructions

  • balance_source

Install

npm install @tdm/mcp-server

Global install:

npm install -g @tdm/mcp-server

If you already use tdm-sdk, the simplest path is:

tdm mcp

That SDK command writes a project .mcp.json pointing to the bundled MCP runtime. The standalone @tdm/mcp-server package itself does not mutate your project config files.

Run

tdm-mcp-server

Bundled SDK path:

tdm mcp serve

Programmatic startup

import { startUltraThinRadarServer } from '@tdm/mcp-server';

await startUltraThinRadarServer();

Example response

{
  "state": "DEPLETED",
  "remaining_usdc": 0,
  "wallet_linked": true,
  "dust_tokens_detected": true,
  "agent_instructions": "Suggest tdm sweep.",
  "balance_source": "runtime_snapshot"
}

Scope

This package is a decision helper for agent runtimes. It is not a wallet manager, payout tool, or general execution framework.

If you need a live JavaScript gateway integration instead of local state guidance, use tdm-sdk with makePayable(...), tdm-sdk/authorize, tdm-sdk/checkout, tdm-sdk/session-tanks, or createGatewayClients(...).

If MCP suggests a recovery path such as tdm sweep, the current SDK routing behavior behind that suggestion is:

  • Solana Jupiter:

    • https://api.jup.ag/swap/v1 when JUPITER_API_KEY is configured

    • https://lite-api.jup.ag/swap/v1 as the compatibility fallback without a key

  • Base Odos:

    • https://api.odos.xyz without ODOS_API_KEY

    • https://enterprise-api.odos.xyz with ODOS_API_KEY

The MCP server itself does not hold or manage those API keys; it only points operators toward the surrounding tdm-sdk workflow.

If you need custom local signing for advanced third-party integrations, use the experimental tdm signer serve mode from tdm-sdk instead of treating the MCP server as a transaction executor.

Warning:

  • advanced users only

  • localhost-only signing surface

  • blind signing risk exists

  • TDM does not take responsibility for losses caused by compromised local scripts or unsafe third-party integrations in that mode

License

MIT

Available Tools

1 tool
tdm_get_session_stateA

Provides the LLM Agent with local TDM balance snapshot hints and wallet status to determine whether x402 execution should continue or whether the user should run tdm connect, tdm fuel, or tdm sweep.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It states that hints and status are provided, but does not specify whether the operation is read-only, what side effects exist, or the exact format of the output. The description is too vague about the actual behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the core purpose. It is concise and avoids unnecessary words, though the phrasing 'local TDM balance snapshot hints' is slightly complex but still clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description should explain what the tool returns. It mentions 'balance snapshot hints and wallet status' but does not detail the format or structure of the output, leaving gaps for the agent. The tool simplicity partially compensates, but more specificity is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the input schema has 100% documentation coverage (empty). The description does not need to add parameter details, and it provides sufficient context for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool provides balance snapshot hints and wallet status to determine whether x402 execution should continue or alternative tools should be used. It names the specific resources and implies the decision-making purpose, but could be more direct about it being a 'get state' operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly suggests when to use this tool (before deciding on x402 execution) and mentions alternative tools (tdm connect, tdm fuel, tdm sweep). It lacks explicit 'when not to use' guidance, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 1 tool updatev0.1.0
    • First observedtdm_get_session_state

TDQS

A3.5/5.0
Disambiguation5/5

With only one tool, there is no possibility of confusion between tools; the single tool has a clear and distinct purpose.

Naming Consistency5/5

The tool name follows a consistent verb_noun pattern with a server-specific prefix, which is clear and predictable.

Tool Count2/5

A single tool is insufficient for the apparent domain, which involves multiple user actions (connect, fuel, sweep) that are not exposed as tools, making the surface feel incomplete and under-scoped.

Completeness2/5

The server only provides a state query tool but lacks any action tools for the operations it references (connect, fuel, sweep), leaving critical gaps that prevent an agent from completing workflows.

Maintenance

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to check balances and send transactions across multiple blockchains with automatic spending limit protection and policy enforcement.
    3
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to perform blockchain operations like wallet management, token info, DeFi swaps, cross-chain bridging, and price checking across Ethereum, BNB Chain, and Solana.
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ToDealMarket/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server