@opensmm/mcp-server
OfficialThis server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
OpenSMM Protocol
Open, provider-neutral protocol for ordering and executing social media growth services by AI agents. MCP is one way to connect — not the product itself.
Status: 0.1.0-draft — the spec and reference gateway are feature-complete
for the v0 draft and covered by tests; not yet published to npm or MCP registries.
For AI agents: start with llms.txt.
For supply nodes: docs/PROVIDER_ONBOARDING.md —
zero-code registration, including a copy-paste prompt for your AI assistant.
What this is
OpenSMM separates three concerns that classic SMM panels merge into one:
AI Agent
│
▼
OpenSMM Gateway ← catalog, quotes, payments, idempotency, MCP/REST
│ canonical commands
▼
OpenSMM Provider SPI ← execution suppliers behind one adapter interface
│
▼
Execution providers ← SMM API v2 panels, native providers, ...spec/v0/— the protocol: JSON Schemas for every model, canonical statuses, error codes, idempotency rules, flow examples. Language- and transport-neutral.src/core/— the domain core: catalog, quoting, orders, payment intents, execution state machine. No MCP/HTTP imports allowed in here.src/adapters/inbound/rest/— canonical HTTP binding (/v0/*).src/adapters/inbound/mcp/— MCP tools, a thin layer over the same core.src/adapters/providers/mock/— in-memory provider for the vertical slice, with scriptable failure scenarios (rejection, ambiguous submission, cancel, refill).src/adapters/providers/smm-v2/— one adapter for the de-facto SMM API v2 standard (POST /api/v2,key+action) with semantic profiles for panel deviations (per-unit rates, success-message refills, provider-credit currencies). Onboarding a panel =baseUrl + apiKey + profile.src/adapters/providers/rest-v1/— adapter for reseller-style REST v1 APIs (GET /services,POST /orders, Bearer auth).src/core/provider-registry.ts+src/core/ssrf-guard.ts— multi-provider node registry (pseudonymous keys, lifecycle) and the SSRF guard behindregisterProvider.src/adapters/payments/x402/— x402 payment rail (USDC on Base) behind a facilitator interface; ships with a mock facilitator for tests. The core only knows thePaymentRailSPI, so TON/CryptoBot plug in the same way.
Related MCP server: tokportal-mcp
The one rule of the protocol
The same operation through REST and MCP produces the same domain objects. Same
clientReference→ sameorderId, on any transport.
Quick start (local, MockProvider)
Requires Node.js ≥ 22.6 (runs TypeScript natively).
npm install
npm test # 86 tests: core, transports, adapters, payments, registry, spec examplesREST:
npm run rest # http://localhost:3100/v0
curl http://localhost:3100/v0/capabilities
curl "http://localhost:3100/v0/services?query=members&platform=telegram"Connecting a live provider (rest-v1)
Both entry points boot against the MockProvider by default. To run the gateway
against a live provider exposing a reseller-style REST v1 API
(GET /services, POST /orders, GET /orders/:id, Bearer auth), set:
# .env (gitignored) or the environment of the process
OPENSMM_REST_V1_BASE_URL=https://provider.example/api/v1
OPENSMM_REST_V1_API_KEY=<reseller api key>
OPENSMM_PROVIDER_ID=provider-alpha # optional, defaults to "rest-v1"On boot the gateway syncs the catalog from the provider's GET /services and
serves it through the same protocol surface. Order creation spends the
provider-side balance of that API key — use a funded key only when you intend
to place real orders.
MCP (stdio, for Claude Desktop / Kimi Code / Cursor):
{
"mcpServers": {
"opensmm": {
"command": "npx",
"args": ["-y", "@opensmm/mcp-server"]
}
}
}or from a checkout: "command": "node", "args": ["/path/to/mcp-server/bin/opensmm.mjs"].
Tools: get_capabilities, list_providers, register_provider,
search_services, get_service, get_quote, create_order,
get_order_status, cancel_order, request_refill.
list_providers (REST: GET /v0/providers) returns the pseudonymous provider
showcase: lifecycle, capabilities, offers count, and gateway-measured quality
metrics. Providers are listed under opaque keys (provider-alpha, …); a
human-readable displayName appears only for providers that opted in.
register_provider (REST: POST /v0/providers) is provider self-onboarding
(spec/v0 §10): the endpoint URL must pass the SSRF guard, the gateway
healthchecks the provider API by listing its offers, syncs them into the
catalog and returns the pseudonymous providerKey. Credentials are used only
to call the provider and are never returned. A payoutAddress enables direct
settlement (spec/v0 §8): it becomes the payTo of that provider's payment
requirements — money flows agent → provider, never through the gateway.
The acceptance flow
search → quote → create order → payment → execution → status → completion# 1. quote (mandatory before ordering)
curl -X POST http://localhost:3100/v0/quotes -H 'content-type: application/json' \
-d '{"serviceId":"osmm_svc_tg_members_std","quantity":1000,"link":"https://t.me/example_channel"}'
# 2. order — returns HTTP 402 with the Order body (paymentStatus: REQUIRES_PAYMENT)
curl -X POST http://localhost:3100/v0/orders \
-H 'content-type: application/json' -H 'Idempotency-Key: my-order-1' \
-d '{"quoteId":"<quoteId>","link":"https://t.me/example_channel"}'
# 3. settle via the dev-only mock rail
curl -X POST http://localhost:3100/v0/payments/<paymentIntentId>/settle
# 4. poll
curl http://localhost:3100/v0/orders/<orderId>Key properties (enforced by tests):
Idempotency is part of the protocol.
Idempotency-Keyheader (REST) /clientReference(MCP). Replay returns the same order; same key with different parameters →IDEMPOTENCY_CONFLICT.Payment and execution are separate state machines (
paymentStatusvsexecutionStatus), never one merged status.No blind provider retries. An ambiguous submission becomes
SUBMISSION_UNKNOWNand waits for reconciliation — it is never silently resent.Money is decimal strings, computed on integer micro-units. No floats.
A quote is consumed exactly once; reuse returns the original order instead of double-charging.
Roadmap
✅ Spec draft: JSON Schemas, errors, statuses, examples.
✅ Core: quote, order, idempotency, state machine.
✅ MockProvider: full lifecycle + failure scenarios.
✅ REST + MCP: same scenario through both transports, same
orderId.✅ Provider adapters:
smm-v2(classic panel API with behavior profiles) andrest-v1(reseller-style REST).✅ Multi-provider registry +
registerProviderself-onboarding with SSRF guard, healthcheck and live catalog sync.✅ Direct settlement: provider
payoutAddressbecomes thepayToof its payment requirements — funds flow agent → provider, never through the gateway.🟡 x402: rail with mock facilitator done (incl.
SETTLEMENT_PENDING); testnet needs a real facilitator config.⬜ Background catalog sync + healthchecks with circuit breaker (
SUSPENDEDon degradation).⬜ Gateway-measured metrics feeding the public provider showcase.
⬜ x402 mainnet: real small-amount payment.
⬜ Public MVP: 30–50 curated services. No account farms, no A2A yet.
Legal notice
OpenSMM is open-source software for routing and measuring API requests. It is not a marketplace operator, payment processor or escrow agent: with direct settlement, funds move peer-to-peer between agents and providers, and the software never holds balances or private keys. Quality metrics are gateway-measured observations, not guarantees. Each gateway operator and each provider node is responsible for its own compliance. The software is provided "as is", without warranty of any kind — see LICENSE.
License
MIT © OpenSMM Protocol — see LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Connect any AI agent to 11+ social platforms: schedule, publish & track posts via hosted MCP.
Pay-per-use tool marketplace for AI agents. Search, price-check, and call APIs via MCP.
Agent-first social media publishing, scheduling, analytics, and unified inbox API + 16-tool MCP server across 18 social platforms (X, LinkedIn, Instagram, YouTube, TikTok, Threads, Bluesky, Reddit, Telegram, Discord, Mastodon, Facebook, Pinterest).
Social media data for AI agents: one MCP address, 18 platforms. Pay per call; failed calls are free.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI agents to discover, subscribe to, and call paid agent services from the AgentStorefront marketplace directly within MCP-aware clients like Claude or Cursor.441 npmMIT

tokportal-mcpofficial
AlicenseCqualityCmaintenanceEnables AI agents to manage real TikTok, Instagram, and YouTube accounts via a REST API and MCP server, allowing for account creation, content publishing, warming, and analytics without OAuth or daily post limits.9112 PyPIMIT- FlicenseNot gradedqualityCmaintenancePay-per-use tool marketplace for AI agents. Search, price-check, and call APIs via MCP.-
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to post, schedule, thread, delete, and analyze social media posts across platforms like X, Bluesky, LinkedIn, and Instagram through a single MCP interface.123 npmMIT