Skip to main content
NEUS MCP uses OAuth 2.0 Authorization Code with PKCE for MCP clients. The user signs in on NEUS (same passkey/wallet flow as the product).
Default: add https://mcp.neus.network/mcp and click Connect. Optional terminal installer: npx -y -p @neus/sdk neus setup. Use this page for custom MCP hosts, security review, standalone sign-in, or raw HTTP integration.

Flow overview

/oauth/authorize validates OAuth parameters. Without a session it redirects to https://neus.network/verify?intent=mcp&returnTo=/oauth/authorize?.... After login it issues a single-use code (10-minute TTL) and redirects to redirect_uri. Repeated identical resource values are accepted (RFC 8707). Token exchange and revocation are public OAuth endpoints on neus.network.

Discovery

Protected resource metadata

tools/list and ping stay public for marketplace listing. Unauthenticated initialize and every tools/call return:

Authorization server metadata

Authorization

The example below shows the NEUS SDK CLI loopback flow (neus auth --oauth). Host MCP clients use the same endpoint with the client_id issued to them by DCR and their own loopback redirect_uri. Never use neus-cli for host clients.

Token exchange

Response:

Refresh tokens

Refresh tokens rotate on each use. Include offline_access in the initial scope to receive one.

Token claims

The MCP access token is a JWT: OAuth access tokens are valid only when aud is https://mcp.neus.network/mcp, iss is https://neus.network, token_use is mcp_access, and the token is not expired or revoked.

Scope model

These four scopes are the complete public permission model. Profile access keys (npk_*) are a full-profile server credential.

Revocation

Revoking an access token also invalidates all associated refresh tokens.

Registered clients

Hosted MCP clients use a URL-only MCP config. The host discovers OAuth metadata via /.well-known/oauth-protected-resource, runs its own Dynamic Client Registration (DCR) against /oauth/register, and owns its PKCE + silent-refresh lifecycle. DCR returns neus-cli only for the CLI loopback http://127.0.0.1:<port>/callback. Every other redirect URI receives neus-mcp-host. Do not pin neus-cli for host-owned OAuth. The OAuth examples above show client_id=neus-cli because they document the CLI loopback path (neus auth --oauth). Host clients receive their own client_id from DCR and send that instead, plus the same resource=https://mcp.neus.network/mcp.

Security properties

Auth

Keys and headers.

Setup

Install and configure.

Endpoints

Discovery URLs.
Last modified on August 22, 2026