Skip to content

MCP server ​

NETTS publishes its documentation as an MCP server, so an AI agent can search these docs and the API specification itself instead of guessing or being fed a 700 KB text dump.

https://doc.netts.io/mcp

The server is read-only. It knows nothing about your account, keys or balance — only what is published on this site.

A second, separate server is a direct line to NETTS for AI agents:

https://doc.netts.io/feedback/mcp

Not only about the documentation. Ask how the service actually behaves, what an endpoint really returns, how TRON energy, bandwidth, delegation and staking work in practice, how to interact with TRC-20 and other smart contracts. Report errors, propose features, raise security concerns. A person reads it and writes the reply.

Two servers rather than one on purpose. The documentation server stays read-only, so a host can let a model search the docs freely; this one has side effects — it stores your text and shows it to people — and should ask the user before it is called.

What the agent gets ​

ToolWhat it does
search_docsFull-text search over the documentation pages
get_docFull Markdown of one page
list_docsIndex of every page
search_apiSearch operations of NETTS API v2
get_endpointParameters, schemas, responses and error codes of one operation
get_openapi_schemaA reusable schema from the specification

The blog is deliberately not indexed: those are articles for people, and for an agent they are noise. Translations are not indexed either — they are machine translations of the English pages, and duplicates only push the right page down.

Every tool is annotated as read-only (readOnlyHint, not destructive, safe to repeat). search_docs and search_api also return structuredContent with the source URL of each hit. A missing page, operation or schema, or an incomplete get_endpoint call, comes back as a tool error (isError: true); an empty search is a normal result.

Asking NETTS ​

Anything the documentation does not settle. A person reads it and writes the reply; nothing is generated, and nothing you send changes the service or the documentation by itself.

ToolWhat it does
ask_nettsSends a question, report or proposal to NETTS staff, returns feedback_id and access_token
get_answerReturns the status and, once written, the reply

Pick a kind so the message reaches the right person:

kindUse it for
questionHow the service works, what an endpoint really returns, TRON energy and bandwidth, delegation, staking, TRC-20 and other contracts
documentation_errorSomething on a page is wrong
missing_informationSomething important is not documented at all
suggestionAn idea for improving the service or the API
securityA security concern or a recommendation

How it works:

  1. Call ask_netts with your message, a random idempotency_key, and — when the question is about a specific page or operation — doc_path or operation_id. Those are validated against the published release, so use the values the documentation server gave you; leave them out for general questions.
  2. You get back a feedback_id, an access_token, an estimated reply time and poll_after_seconds. Keep the token: it is the only key to the reply.
  3. Come back later with get_answer. Until a person has replied, the status is new or in_review.

Resending the same idempotency_key with the same body returns the same record instead of creating a second one, so a dropped connection costs nothing.

Plain text only. The message may contain letters in any script, digits, spaces, line breaks and basic punctuation: . , : ? ! - _ ( ) / ' " % + = # @ *. Every other character — markup, code symbols such as < > { } [ ] $ and backticks, control and invisible characters, emoji — is removed before the message is stored. Describe code in words or by name (/apiv2/order1h, receive_address) instead of pasting it. The idempotency_key may contain only Latin letters, digits, - and _. A sender may have up to five unanswered messages at a time.

Before you call it. The text goes to people at NETTS. Ask the user first, and never include API keys, secrets, personal or account data: no account is needed, the reply goes to whoever holds the access token, and for the same reason a reply never contains private or account-specific information. For anything tied to a particular account or order, use the normal support channels.

There are no webhooks: you retrieve the reply yourself. No account is needed, and the channel is rate-limited. Requests are logged with the IP address for abuse prevention; logs are kept for 90 days.

Connect ​

Cursor and VS Code — use the Connect to Cursor and Connect to VS Code items in the menu at the top of any documentation page. They install the server in one click.

Claude Code

bash
claude mcp add --transport http netts-docs https://doc.netts.io/mcp

Anything else — the transport is Streamable HTTP, no authentication. Add both servers: the documentation one, and the feedback one if you want to be able to ask questions.

json
{
  "mcpServers": {
    "netts-docs": {
      "type": "http",
      "url": "https://doc.netts.io/mcp"
    },
    "netts-docs-feedback": {
      "type": "http",
      "url": "https://doc.netts.io/feedback/mcp"
    }
  }
}

For Claude Code the second one is:

bash
claude mcp add --transport http netts-docs-feedback https://doc.netts.io/feedback/mcp

Without MCP ​

If your tool does not speak MCP, the same content is available as plain files: