New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

@x-tkn/mcp

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@x-tkn/mcp

MCP server for X-TKN: hand a secret to a person as a one-time link, encrypted on your machine. No read tool.

latest
npmnpm
Version
1.0.1
Version published
Maintainers
1
Created
Source

X-TKN MCP server

Lets an AI agent hand a secret to a person as a one-time link, with no way to read it back.

npx -y @x-tkn/mcp
  • No read tool. The server has create_secret, check_status and revoke_secret. Once a secret is handed over, the agent can see whether it was opened and can cancel it. It cannot see the secret again.
  • Encrypted on your machine. create_secret encrypts with AES-256-GCM before anything is sent. X-TKN stores only ciphertext. The key travels in the link's #fragment, which browsers never send to a server.
  • Up to 256 KB per secret: 64 KB on the free Developer plan, 256 KB on Team and Enterprise. Enough for a certificate bundle or a .env file, not just a password.

It runs locally over stdio for a reason. A hosted MCP server would receive the plaintext before encrypting it, and the whole point is that nobody but the recipient can read it.

Setup

You need Node 20 or later and an X-TKN API key. Developer keys are free: sign up at x-tkn.com and create one in the account console. Sandbox keys (from POST /accounts/sandbox) cannot create secrets.

Claude Code

claude mcp add x-tkn -e X_TKN_API_KEY=your-key -- npx -y @x-tkn/mcp

Claude Desktop, Cursor, Windsurf and other clients take the same block in their MCP config file:

{
  "mcpServers": {
    "x-tkn": {
      "command": "npx",
      "args": ["-y", "@x-tkn/mcp"],
      "env": { "X_TKN_API_KEY": "your-key" }
    }
  }
}

Without a key the server still starts, and every tool call answers with how to get one.

Tools

create_secret

Encrypts a secret and returns a link that opens it once.

ArgumentRequiredWhat it does
secretyesThe text to hand over.
expiresInno{ days, hours, minutes }. Defaults to the plan's: 7 days on Developer, 30 on Team.
passphrasenoThe recipient has to type this before the secret opens. 8 to 256 characters. Team and above.
recipientEmailnoThe recipient has to enter a 6-digit code sent to this address. Team and above. Not with passphrase.
notenoFor your own records in the X-TKN console. Stored unencrypted and never shown to the recipient.

Returns the link, a code for the other two tools, and expiresAt.

Send a passphrase by a different channel than the link. Anyone holding both can open the secret.

check_status

Takes the code. Returns waiting, opened, expired or revoked, with openedAt once it has been opened. It never returns the secret.

revoke_secret

Takes the code. Stops the link working, immediately and for good. A secret that was already opened stays opened.

What X-TKN sees

The ciphertext, the expiry, your note, and, if you set them, a hash of the passphrase or the recipient's email address. The passphrase gates the link and plays no part in the encryption. X-TKN never receives the plaintext or the key.

Opening the link uses it up, so give it only to the person it is for. The retrieval page takes the key out of the address bar after it decrypts the secret. If opening fails, the full link, key included, stays in that browser's history.

Package namespace

From version 1.0.1, install @x-tkn/mcp. Version 1.0.0 was published as @fennecstudio/x-tkn-mcp; existing installations can switch their MCP config argument to the new package name. The MCP Registry name is io.github.x-tkn/x-tkn-mcp.

Publishing

For whoever ships a release. Run these in order, from this directory. The registry steps read what npm holds, so none of them can come before the first.

Keep one version everywhere: version in package.json, VERSION in src/version.ts, and both version fields in server.json. Specs fail when they disagree. Keep server.json's description equal to the first paragraph of this README, and no longer than 100 characters, which is the registry's limit.

  • npm. Run npm run deploy in an interactive terminal and complete the browser security-key approval. If the account uses an authenticator code, pass it with npm run deploy -- --otp=<code>. That is npm publish, and prepublishOnly typechecks, tests and builds first. It goes first because the registry reads mcpName out of the published package, and npm will not take the same version twice.

  • Official MCP Registry. Install the CLI with brew install mcp-publisher, then:

    mcp-publisher login github
    mcp-publisher publish
    

    Log in as an Owner of the x-tkn GitHub organization. The registry grants io.github.x-tkn/* to its owners only, and an ordinary member is refused. Check it landed with curl "https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.x-tkn/x-tkn-mcp".

  • Smithery. smithery mcp publish. It does not run bare: Smithery takes a server URL or a pre-built .mcpb bundle, and -n <org>/<server>. This package serves no URL and builds no bundle, so read smithery mcp publish --help and Smithery's publishing docs for the current form before running it.

  • Glama and PulseMCP. Both crawl on their own, so there is nothing to submit. Once the listing appears, claim it on each site.

Keywords

mcp

FAQs

Package last updated on 11 Oct 2026

Related posts