Jama Connect MCP Server (Unofficial)

by t-j-thomas

309 downloads
Not rated
GitHub

About

This is a third-party, open-source MCP server that provides read-only tools for interacting with a Jama Connect instance. It wraps the official py-jama-rest-client library and is intended for users who want to inspect and control API interactions locally.

Details

Author
t-j-thomas
Downloads
309
Categories
Other

- Read-only operations via MCP tools
- OAuth 2.0 authentication with direct env vars or AWS Parameter Store
- Supports local execution via uv or Docker
- Mock mode for testing without a live instance
- Not published on PyPI; encourages code inspection and adaptation

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Jama Connect MCP Server (Unofficial)
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Clone the repository, install dependencies with uv, set required environment variables (JAMA_URL, either JAMA_CLIENT_ID and JAMA_CLIENT_SECRET, or JAMA_AWS_SECRET_PATH), and run via uv run python -m jama_mcp_server.server. Alternatively, build a Docker image and configure an MCP client (e.g., Claude Desktop) to launch the container. The server exposes read-only MCP tools such as get_jama_projects, get_jama_item, etc.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "jama connect mcp server (unofficial)": {
            "jama-mcp-server": {
                "command": "docker",
                "args": [
                    "build",
                    "-t",
                    "jama-mcp-server",
                    "."
                ]
            }
        }
    }
}

McpServers

{
    "jama-mcp-server": {
        "command": "docker",
        "args": [
            "build",
            "-t",
            "jama-mcp-server",
            "."
        ]
    }
}

Jama Connect MCP Server (Unofficial)

This project provides a Model Context Protocol (MCP) server that exposes read-only tools for interacting with a Jama Connect instance. It acts as an MCP wrapper around the official Jama Software py-jama-rest-client library.

Disclaimer: This is a third-party, open-source project and is not officially affiliated with or endorsed by Jama Software.

Note: This server currently only supports read-only operations. Write operations may be added in future updates.

Philosophy: Local Execution & Security

This MCP server is intentionally not published as a package on PyPI or other indices. This decision encourages users to:

1. Clone/Fork the Repository: Obtain the code directly.
2. Inspect the Code: Understand exactly what the server does before running it, especially concerning API interactions and credential handling.
3. Adapt as Needed: Modify the code for specific enterprise requirements or security postures.

This approach prioritizes security awareness and user control over convenience, mitigating risks associated with installing potentially unverified third-party packages. Local execution by cloning the repository is the only supported method at this time.

Prerequisites

Building From Source

Python: Version 3.12 or higher.
uv: The Python package installer and virtual environment manager. (Installation Guide)
Git: For cloning the repository.
Docker For running with docker

Setup

Docker

1. Clone the Repository:

    git clone https://github.com/t-j-thomas/jama-mcp-server.git
cd jama-mcp-server

2. Docker Build:

    sudo docker build -t jama-mcp-server .

This will build the docker image using the project's pyproject.tonl & uv.lock configrations

3. For Build issues due to Certificates for the Jama Rest Client Repo:

If you see an error like certificate verification failed: CAFile, you can optionally
clone the https://github.com/jamasoftware-ps/py-jama-rest-client.git repo into this directory, and uncomment

# py-jama-rest-client = { path = "./py-jama-rest-client", editable = true }

from pyproject.toml file and comment out

py-jama-rest-client = { git = "https://github.com/jamasoftware-ps/py-jama-rest-client.git" }.

Then,

    uv sync
sudo docker build -t jama-mcp-server .

Building From Source

1. Clone the Repository:

    git clone https://github.com/t-j-thomas/jama-mcp-server.git
cd jama-mcp-server

2. Install Dependencies:
Navigate into the server directory and use uv to create a virtual environment and install dependencies.

    uv sync

This installs required dependencies, including boto3 if you plan to use AWS Parameter Store for credentials.

Configuration

The server requires environment variables to connect to your Jama Connect instance using OAuth 2.0. Credentials can be provided directly or fetched securely from AWS Parameter Store.

Authentication Methods:

1. Direct Environment Variables:
JAMA_URL (Required): The base URL of your Jama Connect instance (e.g., https://yourcompany.jamacloud.com).
JAMA_CLIENT_ID (Required for this method): Your Jama API OAuth Client ID.
JAMA_CLIENT_SECRET (Required for this method): Your Jama API OAuth Client Secret.
If both JAMA_CLIENT_ID and JAMA_CLIENT_SECRET are set, they will be used directly, and the AWS Parameter Store configuration will be ignored.

2. AWS Parameter Store (Not Supported for Docker):
This method is used only if JAMA_CLIENT_ID and JAMA_CLIENT_SECRET are not both set directly in the environment.
JAMA_URL (Required): The base URL of your Jama Connect instance.
JAMA_AWS_SECRET_PATH (Required for this method): The full name/path of the secret in AWS Parameter Store containing your Jama credentials.
The secret value must be a JSON string with the following structure: {"client_id": "YOUR_JAMA_CLIENT_ID", "client_secret": "YOUR_JAMA_CLIENT_SECRET"}.
JAMA_AWS_PROFILE (Optional): The AWS named profile to use for authenticating to AWS. If not set, boto3 will use its default credential resolution. Your current aws session credentials need to be valid (or refreshed if expired)
Note: Using this method requires the boto3 library to be installed (uv sync handles this) and appropriate AWS permissions for the server's execution environment to access the specified Parameter Store secret.

The server first checks for JAMA_CLIENT_ID and JAMA_CLIENT_SECRET. If both are present, they are used. Otherwise, it checks for JAMA_AWS_SECRET_PATH and attempts to fetch credentials from AWS. If neither method provides the necessary credentials (and Mock Mode is off), the server will fail to start.

Mock Mode (Optional):

For testing without connecting to a live Jama instance:

JAMA_MOCK_MODE: Set to true to use the built-in mock client. The server will return predefined sample data. Any other value (or omitting the variable) disables mock mode.

Setting Environment Variables:

Set these variables in the environment where the MCP client will launch the server process. This could be:
Your terminal session (export JAMA_URL=...).

  • Directly within the MCP client's server configuration (see below).


Running the Server (Standalone)

You can run the server directly for basic checks using uv (ensure environment variables are set):

```bash

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.