Skip to main content

tungsten-mcp

Let AI assistants like Claude work with your Tungsten panel, through the Model Context Protocol (MCP).

Ask things like "Show the 10 newest orders", "How many products are out of stock?" or "Mark order 1042 as shipped", and the AI does it with your panel's data.

What you get

  • An MCP server inside your panel, at /admin/mcp.
  • Tools for every resource: list_resources, describe_resource, list_records (search, filters, sort, pages), get_record, and with a token that allows changes, create_record, update_record, delete_record.
  • Login with OAuth: in Claude, add the server URL as a custom connector, press Connect, log in to your panel and press Allow. No token to copy.
  • An AI access (MCP) screen to see and revoke connected apps and tokens, with a How to connect guide for Claude, Claude Code, Claude Desktop and other apps.

It is safe by default:

  • Each token acts as the user who made it. Their roles, policies and tenancy apply, as in the panel.
  • Writes go through the resource's form: the same validation, defaults and hooks, and they show in the activity log.
  • Tokens are read-only unless you switch on Allow changes. Only a hash of each token is stored.
  • Password hashes, tokens, secrets and API keys are never sent.

Install

pip install tungsten-mcp
from tungsten_mcp import McpPlugin

panel = Panel(..., app_url="https://admin.example.com")
panel.plugin(McpPlugin())
panel.create_tables(engine)

Then open AI access (MCP) in the panel and press How to connect. Needs tungsten-admin 0.1.4 or newer.

Connect

Claude (web, desktop, phone): Settings, Connectors, Add custom connector, paste https://admin.example.com/admin/mcp, then Connect. Log in to the panel and press Allow.

Claude Code with login: claude mcp add --transport http tungsten https://admin.example.com/admin/mcp, then /mcp in Claude Code.

Apps without MCP login use a token: press New token on the AI access (MCP) screen.

Claude Code with a token

claude mcp add --transport http tungsten https://admin.example.com/admin/mcp --header "Authorization: Bearer YOUR_TOKEN"

Claude Desktop (Settings, Developer, Edit Config; needs Node.js)

{
  "mcpServers": {
    "tungsten": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://admin.example.com/admin/mcp", "--header", "Authorization:${AUTH_HEADER}"],
      "env": {"AUTH_HEADER": "Bearer YOUR_TOKEN"}
    }
  }
}

Cursor, VS Code and others: a Streamable HTTP server with the URL and an Authorization: Bearer YOUR_TOKEN header.

Options

McpPlugin(
    path="/mcp",                      # where the server answers, under the panel
    read_only=False,                  # True: no create, update or delete for any token
    resources=None,                   # only these resources (slugs or classes)
    exclude=["users"],                # leave these out
    hidden_fields=["customers.phone", "notes"],   # never send these columns
    max_limit=100,                    # most records per list_records call
    name="Shop admin",                # the name the AI app shows
    oauth=True,                       # apps can connect by logging in (needs a panel with login)
    token_minutes=60,                 # how long an OAuth access token works
)

With multi-tenancy, the token's user works in their first tenant. Send an X-Tenant: <id> header to pick another.

Metadata

Release files for tungsten-mcp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tungsten-mcp 0.1.0
File Size Uploaded
tungsten_mcp-0.1.0.tar.gz 29.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tungsten-mcp 0.1.0
File Interpreter ABI Platform
tungsten_mcp-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 56.8 kB

Release files / tungsten_mcp-0.1.0.tar.gz

Download URL tungsten_mcp-0.1.0.tar.gz
Size 29.4 kB
Tags Source
SHA-256 checksum
How to use checksums
ff045d49de106cbb558ab89a38a6a3a4ea8523f021335803ea900f35abfa33c5
BLAKE2b-256 checksum
How to use checksums
e687646e7ad428ba04c7a42fa8191a1ac5f5c9a1e868dd73431e1032a8d070ca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / tungsten_mcp-0.1.0-py3-none-any.whl

Download URL tungsten_mcp-0.1.0-py3-none-any.whl
Size 27.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6fea280db6b9da11ef0344edd77456f153b371bf57953dd4ebe0a15dbbdecfce
BLAKE2b-256 checksum
How to use checksums
fe91ad213583a529cd166c851948963d23369bef71ff6f9f4c2e4bdb7d09e8f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release history Release notifications | RSS feed

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page