Skip to main content
Glama
wejack639

mcp-jumpserver

by wejack639

mcp-jumpserver

JumpServer STDIO MCP for Codex. Automatically logs in with the JumpServer URL, username, and password and caches the API Token, so there is no need to create a Token manually.

Tools

  • test_jumpserver_login: Tests username/password login, does not return a Token.

  • list_jumpserver_databases: Queries database assets.

  • list_jumpserver_database_accounts: Queries accounts under an asset, does not return passwords.

  • get_jumpserver_temporary_database_credential: Issues a temporary username and password for the database proxy, consistent with the "Database Connection Info" in the JumpServer Web terminal.

  • get_jumpserver_configured_database_credentials: No parameters, issues temporary usernames and passwords for all database assets in the configuration array at once.

Related MCP server: Supabase MCP Server

Installation

uv sync

It is recommended to use a dedicated JumpServer user with least privilege, not a super administrator. Issuing temporary connection credentials requires that this user has login authorization for the target asset, account, and protocol; the approval or MFA policies of the login ACL still apply. This MCP does not provide a tool for reading static passwords of underlying accounts, nor does it require the accounts.view_accountsecret permission.

Configure Codex

codex mcp add jumpserver -- \
  /absolute/path/to/mcp-jumpserver/.venv/bin/mcp-jumpserver

You can also write it into ~/.codex/config.toml:

[mcp_servers.jumpserver]
command = "/absolute/path/to/mcp-jumpserver/.venv/bin/mcp-jumpserver"
startup_timeout_sec = 20
tool_timeout_sec = 60
enabled = true

[mcp_servers.jumpserver.env]
JUMPSERVER_URL = "https://jumpserver.example.com"
JUMPSERVER_USERNAME = "codex-service-user"
JUMPSERVER_PASSWORD = "change-me"
JUMPSERVER_VERIFY_SSL = "true"
JUMPSERVER_DATABASE_ASSETS = '["DB-正式mysql-A", "DB-正式mysql-B"]'
# 可选:JUMPSERVER_ORG_ID = "组织 UUID"

After configuration, restart this MCP in the Codex/ChatGPT desktop app, then call test_jumpserver_login.

Get Temporary Database Credentials

For daily use, call it directly without parameters:

调用 get_jumpserver_configured_database_credentials

The credentials in the result are returned in configuration order; you must confirm errors is empty before consuming them. When you need to temporarily query an asset outside the configuration, call the single-asset tool with the exact asset name:

调用 get_jumpserver_temporary_database_credential:
{"asset":"DB-正式mysql-A","protocol":"mysql"}

调用 get_jumpserver_temporary_database_credential:
{"asset":"DB-正式mysql-B","protocol":"mysql"}

The returned connection.username and connection.password are temporary credentials for the JumpServer database proxy; connection.host, connection.port, and connection.database form the full connection address. If an asset has multiple authorized accounts, first specify the username or UUID of account.

Security Notes

  • The Token is cached only in the MCP process memory and automatically re-logs in once upon receiving HTTP 401.

  • Logs and exceptions do not output the JumpServer password or Token.

  • The MCP only issues temporary credentials for the JumpServer database proxy and does not read static passwords of underlying database accounts.

  • get_jumpserver_temporary_database_credential returns short-lived plaintext connection credentials and should only be called with explicit user authorization.

Testing

uv run pytest
uv run ruff check .

Available Tools

5 tools
get_jumpserver_configured_database_credentialsA

Create temporary proxy credentials for every configured database asset.

    Asset names come from the JUMPSERVER_DATABASE_ASSETS JSON array. Callers must check that
    errors is empty before consuming credentials. Each successful item contains short-lived
    plaintext connection.username and connection.password values.
    
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Even though annotations show readOnlyHint=false and destructiveHint=false, the description adds substantial context: that credentials are short-lived plaintext, that errors must be checked, and that it 'creates' credentials. This goes beyond the minimal annotation information and helps the agent understand side effects and expectations. No contradiction between description and annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the main purpose, then gives essential operational details (source array, error check, output content). No fluff, every sentence carries value. Perfectly sized for a zero-parameter bulk credential tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no parameters and an output schema already provided, the description covers all necessary context: the asset source (JUMPSERVER_DATABASE_ASSETS), the error-handling requirement, and the shape of each result. An agent can call and interpret this tool correctly without further information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the schema carries no parameter documentation burden. The baseline for 0 parameters is 4, and the description adds no parameter-specific details (none needed). It correctly relies on the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Create temporary proxy credentials' for 'every configured database asset.' This distinguishes it from the sibling tool 'get_jumpserver_temporary_database_credential' which appears to be singular, while this one is bulk. The verb and resource are specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides usage context: it operates on all assets from a JSON array, and instructs callers to check 'errors' before using results. It implies when to choose this over the singular sibling (bulk vs single) but does not explicitly state exclusions or alternatives. This is clear enough for an agent to decide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_jumpserver_temporary_database_credentialA

Create temporary database proxy credentials like JumpServer's DB Guide page.

The asset must be an exact name, address, or UUID. If multiple stored-secret accounts or database protocols are permitted, pass the account username/UUID and protocol explicitly. The returned connection.username and connection.password are short-lived plaintext credentials for the JumpServer database proxy, not the underlying database account secret.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYes
accountNo
protocolNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a non-read-only, non-idempotent operation. The description adds valuable context by clarifying that the returned credentials are short-lived plaintext for the proxy, not the underlying database secret. It does not contradict annotations and supplements the mutation nature with important behavioral details about the output.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences and keeps the main purpose upfront. The first sentence states the core action; the second explains parameter conditions and the nature of the return values. It is dense but efficient, with no redundancy or filler, earning a high score for structure while still being readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema, the description appropriately focuses on the key behavioral context: that the returned credentials are temporary and proxy-specific, not the underlying secret. It also covers the necessary input conditions for ambiguous cases. What is missing is an explicit note on side effects or cleanup behavior, but given annotations already signal a mutable operation, this is largely sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the tool description carries the full burden of defining parameters. It clarifies that 'asset' must be an exact name, address, or UUID, and explains when 'account' and 'protocol' should be passed explicitly (if multiple accounts/protocols are permitted). It also notes that account can be a username/UUID, providing concrete semantic guidance beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action ('Create temporary database proxy credentials') and specifies the resource (temporary credentials for JumpServer database proxy). It also explicitly details what the returned connection.username and connection.password represent, distinguishing this from the sibling get_jumpserver_configured_database_credentials by the 'temporary' vs 'configured' contrast in the tool name and description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives usage conditions for parameters (e.g., pass account/protocol explicitly when multiple are permitted) and mentions the asset must be an exact name, address, or UUID, but it does not explicitly contrast when to use this tool versus the sibling tools that list databases or configured credentials. The guidance is implied rather than explicit, and no exclusion criteria are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_jumpserver_database_accountsA
Read-onlyIdempotent

List non-secret accounts for an exact database asset name, address, or UUID.

ParametersJSON Schema
NameRequiredDescriptionDefault
assetYes
limitNo
searchNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds behavioral context by specifying that only non-secret accounts are returned and that the asset must be an exact match, which informs the agent about the nature of the results and the precision required. This goes beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, tight sentence with no fluff. It front-loads the action and scope, effectively communicating the essential information. The structure is optimal for quick parsing by an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists and annotations cover safety, the description is adequate but not comprehensive. It explains the critical asset requirement but omits details about pagination (limit) and filtering (search), which are optional but could affect how results are retrieved. An agent would need to infer their behavior from names and defaults, leaving some gap in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must explain parameter semantics. It clarifies the 'asset' parameter (accepts a name, address, or UUID), but does not mention 'limit' or 'search'. While these have useful defaults and types, their purpose is left to inference. The description only partially compensates for the lack of schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (list), the resource (non-secret accounts), and the identifying criteria (exact database asset name, address, or UUID). It distinguishes from sibling tools like list_jumpserver_databases (which lists databases, not accounts) and the credential retrieval tools, leaving no ambiguity about what is being listed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool: to list accounts for an exact asset identifier. It does not explicitly name alternatives or exclusion scenarios, but the 'exact' clause clarifies that fuzzy matching is not supported, and the sibling tools serve different purposes (testing, retrieving credentials, listing databases). The guidance is clear but could be more explicit about not using this for secret retrieval, which is covered by 'non-secret accounts'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_jumpserver_databasesA
Read-onlyIdempotent

List JumpServer database assets. Optionally filter by name or address.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
searchNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds that search filters by name or address, which is a behavioral hint beyond the schema. However, it doesn't mention pagination, limit behavior, or the structure of the response, though the output schema may cover the latter. The description does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the core action and resource. It includes the filtering option without unnecessary words. Every word earns its place, and it's not under-specified—it covers the essential information in a compact form.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with an output schema and robust annotations, the description is adequate. It specifies the action, resource, and filter behavior, and the existence of an output schema covers return details. The only gap is the lack of usage guidance relative to siblings, but given the tool's simplicity, this is a minor omission.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates significantly by explaining that the 'search' parameter filters by name or address. This gives meaning beyond the bare schema field. The 'limit' parameter is not described, but its default and integer type make it self-explanatory; overall, the description adds useful semantic value for the key parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action ('List') and a specific resource ('JumpServer database assets'), making it distinct from sibling tools that deal with accounts or credentials. It also mentions an optional filter by name or address, which further clarifies scope. No ambiguity exists about what this tool accomplishes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus the siblings like list_jumpserver_database_accounts or get_jumpserver_configured_database_credentials. While the name implies its role, the rubric requires explicit alternatives or contexts, which are absent. A user must infer usage from the sibling names, not from the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

test_jumpserver_loginA
Read-onlyIdempotent

Verify URL and username/password authentication without returning the API token.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety and side-effect expectations. The description adds the valuable behavioral trait that it does not return the API token, which is not in the annotations. This extra context is useful, though it does not elaborate on failure modes or response details. With annotations carrying much of the burden, a 4 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficiently worded sentence. It states the action and a key behavioral exception upfront, with zero redundant phrases. Every word contributes to meaning, making it easy to parse at a glance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters, safe (read-only, idempotent) annotations, and an output schema documenting return values, the description is complete. It specifies the purpose and the critical 'no token returned' behavior, and the safety profile is already covered by annotations. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the schema is trivially 100% covered. Since there are no parameters to explain, the description has no obligation to add param details. The baseline for zero parameters is 4, and the description meets it by not misleading or missing anything.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Verify URL and username/password authentication' — a specific verb and resource. It also adds a distinguishing detail ('without returning the API token') that separates it from sibling tools that list databases or credentials. This is not a tautology and provides a precise, distinct purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (when you want to test credentials without getting a token), but it does not explicitly state when to use this tool versus alternatives like the list/retrieve siblings. There is no mention of 'use this when...' or exclusions. The context is clear but the guidance is implicit rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 5 tool updatesv0.2.0
    • First observedget_jumpserver_configured_database_credentials
    • First observedget_jumpserver_temporary_database_credential
    • First observedlist_jumpserver_database_accounts
    • First observedlist_jumpserver_databases
    • First observedtest_jumpserver_login

TDQS

A4.1/5.0
Disambiguation4/5

Each tool has a distinct purpose: testing login, listing databases, listing accounts, and two credential-generation tools. The two credential tools differ by scope (single asset vs. all configured assets), which is clear from their descriptions, though they could still be confused at a glance.

Naming Consistency5/5

All tool names follow a consistent verb_jumpserver_noun pattern using snake_case (test, list, list, get, get). The pattern is predictable and readable, with no mixing of conventions or vague verbs.

Tool Count5/5

With 5 tools, the server is well-scoped for its purpose of managing and retrieving JumpServer database credentials. Each tool fills a clear role without excess or deficiency.

Completeness4/5

The set covers authentication verification, asset listing, account listing, and credential retrieval for single and bulk scenarios. Missing CRUD operations for databases or accounts are not central to the stated purpose, but a create/delete tool would round out the surface.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables secure database interactions with MySQL, PostgreSQL, and SQLite through granular permissions, multi-database support, and cloud-ready SSL/TLS connections. Supports read-only modes, schema-specific permissions, and transaction management for safe database operations.
    24
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables secure interaction with Supabase databases via the PostgREST API, supporting full CRUD operations and stored procedure calls. It utilizes the Dedalus MCP framework to provide encrypted credential handling and just-in-time token exchange.
    4
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides secure access to Supabase databases via PostgREST API and management tools for projects, schemas, branches, logs, and code generation.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/wejack639/mcp-jumpserver'

If you have feedback or need assistance with the MCP directory API, please join our Discord server