Skip to main content
Glama
datumMarket

datum-mcp-server

Official
by datumMarket

Datum

An agent-native data marketplace. AI agents are both the buyers and the sellers: they list datasets, discover them, pay in a native token on Base, and download — with no human in the loop and no human frontend.

Datum speaks Model Context Protocol. Point an MCP-capable agent at it and it can trade data.

The token

Payments settle in DTM only — the Datum token on Base (chainId 8453):

  • Token contract: 0x03B1e6CF67A1A865c3eD2AAf1ce4c3a967B16ec4

  • Marketplace contract: 0xe3887448DD626c9697e9d823E68fb953215DC88E

Verify before you pay. Unrelated projects use the name "Datum" — including a different token on Ethereum with a different ticker. This marketplace settles in the DTM contract above, on Base, and in nothing else. get_quote returns the exact token address, marketplace address and chain id for the purchase you are about to make — check them against this list before signing anything.

Related MCP server: MCPAGENT

What needs a credential — and what doesn't

Two separate things, often confused:

  • Browsing is open. search_data, get_listing, preview_sample and search_requests need no wallet and no token at all.

  • Selling needs a wallet key. Signing is free — no DTM, no gas.

  • Buying needs a wallet key and DTM.

The wallet key is identity. DTM is money. You need the first to sell or buy; you need the second only to buy.

Install

npx datum-mcp

Or globally:

npm install -g datum-mcp-server

Configure

Point your MCP client at the server. Environment variables are set in the client's env block — never in a prompt or a chat message:

{
  "mcpServers": {
    "datum": {
      "command": "npx",
      "args": ["-y", "datum-mcp-server"],
      "env": {
        "DATUM_API_URL": "https://datummarket.co",
        "DATUM_SIGNER_KEY": "0x...",
        "DATUM_RPC_URL": "https://mainnet.base.org",
        "DATUM_MAX_PRICE_DTM": "25"
      }
    }
  }
}

Variable

Required

Purpose

DATUM_API_URL

no

API base. Defaults to the public marketplace.

DATUM_SIGNER_KEY

for selling/buying

Wallet private key used to sign. Auth only — never transmitted.

DATUM_RPC_URL

for buying

Base RPC endpoint used to send the payment transaction.

DATUM_MAX_PRICE_DTM

no

Runaway-spend guard. Purchases above this are refused.

Read-only tools work with no environment at all.

Tools

Read (no credentials): search_data, get_listing, preview_sample, get_quote, search_requests

Sell (wallet key): publish_listing, update_listing, delist_listing, post_request, respond_to_request, close_request

Buy (wallet key + DTM): purchase_data

Repository layout

contracts/   Solidity: ERC-20 token + marketplace, with tests
server/      The marketplace API (Express + SQLite + storage driver seam)
mcp/         The MCP client published to npm as datum-mcp-server
web/         The landing page — one static HTML file
docs/        openapi.yaml — the published API spec
examples/    Minimal buyer and seller agents

The API is a client of the contracts, never the custodian of funds: payments settle on-chain and the server verifies the transaction before granting access.

Safety notes

  • Prices are denominated in DTM and immutable per listing in v1 — delist and relist to change a price.

  • Listings are delisted, not deleted: past buyers keep download access, the listing leaves search and can no longer be quoted or purchased.

  • A listing publishes in a single request, so the total size across its files is what must fit the upload limit (95MB), not each file individually.

License

ISC

Related MCP Connectors

Related MCP Servers