MCP and MCP Client-Server Architecture

How to Connect with Jenkins, Kubernetes, GitHub, Jira & Confluence MCP Server

Last Updated on August 14, 2025 by cscontents

Introduction

First, let’s discuss the context.

We all know LLMs (Large Language Models), which are like a brain. These LLMs are trained Machine Learning models, and they are trained on a huge set of data. These LLM models are brilliant in general; they can help us in learning by asking questions.

But that data on which these models are trained is generic. These models don’t know about the specifics of our projects, systems, infrastructure, repositories, toolset, database, etc.

Now, there is a twist in the picture. An AI company named Anthropic built a solution that can work as a bridge between these super-intelligent LLMs and our systems, toolset, repositories, etc. And this solution is called Model Context Protocol (MCP).

Components that are involved there –

  • LLM (e.g., Gemini models, GPT models, etc.)
  • MCP Client
  • MCP Server
  • Target tool or data source (e.g., Kubernetes cluster, GitHub, Jenkins, etc.)

Below is a high-level diagram that shows the concept.

Model Context Protocol (MCP) client-server architecture

Purpose of the MCP and MCP Client-Server Architecture

The purpose is clear that LLMs are intelligent, but to use this intelligence to manage the external toolsets, external systems, and external data sources, we need something to connect the LLMs with the target.

  • It allows us to manage various tools, systems, and data sources by throwing prompts to the LLMs in plain human language.
  • It gives us a secure way of accessing & managing our private tools, systems, data sources, etc., without exposing our sensitive information like secrets, API keys, passwords, etc. to the LLMs. Because LLM won’t have access to this sensitive information, we will provide this sensitive information to the MCP server, which will connect to the concerned tools, systems & data sources.
  • And most importantly, on a high level, what it does is, it is abstracting away the tech stack layers. This setup allows everybody (tech & non-tech people) to know about the system, tools & data by asking questions to the LLMs in plain human language like English.

Connecting / Managing external Tools via LLM

In this section, we will see how to connect or integrate tools with LLMs via MCP (Client & Server).

Below is the tech stack we will be using.

  • Cursor IDE – which has the MCP feature included. This IDE allows us to configure the MCP server through a JSON config file. And this IDE has an MCP client included within it.
  • We will have only one MCP client (within Cursor IDE) and multiple MCP servers. Each tool has its own MCP server.
  • In this article, we will take tools like Jenkins, Kubernetes Cluster, GitHub, and Atlassian tools (Jira & Confluence), which we will integrate with LLMs via MCP.
    • Jenkins – we have a Jenkins instance up & running on a Linux machine.
    • Kubernetes – we have a Kubernetes cluster up & running. This could be a small cluster, like minikube, just for testing purposes.
    • GitHub – we have a GitHub account created.
    • Jira & Confluence – we have an Atlassian account created.

Connecting or Integrating Jenkins MCP Server with LLMs

Follow the steps below.

Step 1: Collect Jenkins-related info

Below set of information below you need (please fill in similar info from your setup). You should have a Jenkins instance up & running.

  • Jenkins URL: http://18.89.156.201:8080
  • For a Jenkins user, create a Jenkins API Key.
    • Jenkins User: jenkins
    • API Key: **********************************
Step 2: Install Packages
  • Install Cursor IDE
  • Install Python on your machine where the Cursor IDE is installed.
  • Install the “uv” Python package by running the command below.
pip install uv
  • Install the mcp-jenkins package by running the command below.
pip install mcp-jenkins
    Step 3: Configure Jenkins MCP Server

    In Cursor, follow the path below.

    Settings -> Tools & Integration -> mcp.json

    {
        "mcpServers": {
          "mcp-jenkins": {
            "command": "uvx",
            "args": [
              "mcp-jenkins",
              "--jenkins-url=http://18.89.156.201:8080",
              "--jenkins-username=your-jenkins-user",
              "--jenkins-password=your-api-token"
            ]
          }
         }
        }
    

    And save this file.

    Step 4: Restart Cursor

    After adding the MCP server details in the mcp.json file and saving the file, we need to close the Cursor IDE and open it again.

    Step 5: Validation

    Once you open the Cursor IDE, go to the path below.

    Settings -> Tools & Integration

    The tool we added would be shown & check whether it is showing a green colour, or orange colour, or a red colour.

    • Green Colour means – all the tools are available to the MCP server.
    • Orange Colour means – it is loading the tools.
    • Red Colour means – it is not able to connect. In this case, we need to check & think what could be the possible issue in the MCP client-server connection.
    Step 6: Test it by giving a prompt

    In the cursor, you can open the chat panel by pressing  ‘CTRL + L’

    There, you keep the “Agent” mode and throw a prompt like below.

    Can you list the Jenkins jobs?

    If it is responding correctly, then we are good.

    Reference

    Jenkins MCP server repository: https://github.com/lanbaoshen/mcp-jenkins

    (Follow the README.md file of the above repository)

    Connecting or Integrating Kubernetes MCP Server with LLMs

    Follow the steps below.

    Step 1: Collect the kubeconfig file

    Every Kubernetes cluster has a kubeconfig file. You can find it inside the .kube folder. Please copy the file or copy the content of the file and save it locally.

    Step 2: Install packages
    • We need to have the Cursor IDE installed.
    • Python should be installed on our machine where Cursor is installed.
    • Install np & mcp-server-kubernetes packages.
    pip install np
    pip install mcp-server-kubernetes
    Step 3: Configure Kubernetes MCP Server

    In Cursor, follow the path below.

    Settings -> Tools & Integration -> mcp.json

    {
      "mcpServers": {      
          "kubernetes": {
             "command": "npx",
             "args": ["mcp-server-kubernetes"],
             "env": {
                 "KUBECONFIG_PATH": "C:/Users/demo/.kube/config"
               }
           }
         }
      }
    
    Step 4: Restart Cursor

    After adding the MCP server details in the mcp.json file and saving the file, we need to close the Cursor IDE and open it again.

    Step 5: Validation

    Once you open the Cursor IDE, go to the path below.

    Settings -> Tools & Integration

    The tool we added would be shown & check whether it is showing a green colour, or orange colour, or a red colour.

    • Green Colour means – all the tools are available to the MCP server.
    • Orange Colour means – it is loading the tools.
    • Red Colour means – it is not able to connect. In this case, we need to check & think what could be the possible issue in the MCP client-server connection.
    Step 6: Test it by giving a prompt

    In the cursor, you can open the chat panel by pressing  ‘CTRL + L’

    There, you keep the “Agent” mode and throw a prompt like below.

    Can you get the running pods under the default namespace?

    If it is responding correctly, then we are good.

    Reference

    K8s MCP Server – https://github.com/Flux159/mcp-server-kubernetes

    How to supply the Kubeconfig file – https://github.com/Flux159/mcp-server-kubernetes/blob/main/ADVANCED_README.md

    Connecting or Integrating GitHub MCP Server with LLMs

    Follow the steps below.

    Step 1: Collect the GitHub Account Info
    • GitHub Username: This won’t be used in config. But keep this handy, we may need to provide this info to LLMs while asking questions.
    • GitHub PAT token: Create a PAT token
    Step 2: Configure GitHub MCP Server

    In Cursor, follow the path below.

    Settings -> Tools & Integration -> mcp.json

    {
      "mcpServers": {
         "github": {
          "url": "https://api.githubcopilot.com/mcp/",
          "headers": {
            "Authorization": "Bearer you-PAT-token"
          }
        }
      }
    }
    

    Here, the MCP server will run remotely.

    Step 3: Restart Cursor

    After adding the MCP server details in the mcp.json file and saving the file, we need to close the Cursor IDE and open it again.

    Step 4: Validation

    Once you open the Cursor IDE, go to the path below.

    Settings -> Tools & Integration

    The tool we added would be shown & check whether it is showing a green colour, or orange colour, or a red colour.

    • Green Colour means – all the tools are available to the MCP server.
    • Orange Colour means – it is loading the tools.
    • Red Colour means – it is not able to connect. In this case, we need to check & think what could be the possible issue in the MCP client-server connection.
    Step 5: Test it by giving a prompt

    In the cursor, you can open the chat panel by pressing  ‘CTRL + L’

    There, you keep the “Agent” mode and throw a prompt like below.

    Can you create a repository with a Hello World Java-based application with Dockerfile, Deployment & Service manifest file to deploy it in an AKS cluster? Keep the Service type as a load balancer?

    If it is responding correctly, then we are good.

    Reference

    GitHub MCP server: https://github.com/github/github-mcp-server

    Connecting or Integrating Atlassian MCP Server with LLMs

    Follow the steps below.

    Step 1: Know the Prerequisites

    As per the document, it requires a browser that supports OAuth 2.0

    It will try to open a browser, and we need to allow it. From there, it will access the concerned Jira account.

    Step 2: Configure Atlassian MCP Server

    In Cursor, follow the path below.

    Settings -> Tools & Integration -> mcp.json

    {
       "mcpServers": {    
          "atlassian-mcp-server": {
             "url": "https://mcp.atlassian.com/v1/sse",
            "type": "http"
        }
      }
    }
    

    Here, the MCP server will run remotely.

    Step 3: Restart Cursor

    After adding the MCP server details in the mcp.json file and saving the file, we need to close the Cursor IDE and open it again.

    Step 4: Validation

    Once you open the Cursor IDE, go to the path below.

    Settings -> Tools & Integration

    The tool we added would be shown & check whether it is showing a green colour, or orange colour, or a red colour.

    • Green Colour means – all the tools are available to the MCP server.
    • Orange Colour means – it is loading the tools.
    • Red Colour means – it is not able to connect. In this case, we need to check & think what could be the possible issue in the MCP client-server connection.
    Step 5: Test it by giving a prompt

    In the cursor, you can open the chat panel by pressing  ‘CTRL + L’

    There, you keep the “Agent” mode and throw a prompt like below.

    Can you list the in-progress Jira tickets?

    If it is responding correctly, then we are good.

    Reference

    Alternative to running the Remote Atlassian MCP server – Using Docker

    If the remote Atlassian MCP server is not connecting for you, then you can run another version of the Atlassian MCP server as a Docker container.

    Step 1: Install Docker

    Install Docker on your machine. If you want to use a remote Linux machine, that is also fine.

    Step 2: Run the container

    The example below is only for Jira.

    docker run --rm -i \
      -p 85:8080 \
      -e "JIRA_URL=https://you-domain.atlassian.net" \
      -e "JIRA_USERNAME=your-email" \
      -e "JIRA_API_TOKEN=your-jira-api-token" \
      ghcr.io/sooperset/mcp-atlassian:latest \
      --transport sse --port 8080 -vv
    

    Here, we are exposing the MCP server through port 85 (this port should be open at the network level, like in a security group, etc). And inside the container, the server is listening on port 8080.

    Step 3: Configure Jira MCP server

    In Cursor, follow the path below.

    Settings -> Tools & Integration -> mcp.json

    {
      "mcpServers": {    
        "mcp-atlassian": {
            "url": "http://docker-host-ip:85/sse"
          }
       }
    }
    

    And save the file.

    Step 3: Restart Cursor

    After adding the MCP server details in the mcp.json file and saving the file, we need to close the Cursor IDE and open it again.

    Step 4: Validation

    Once you open the Cursor IDE, go to the path below.

    Settings -> Tools & Integration

    The tool we added would be shown & check whether it is showing a green colour, or orange colour, or a red colour.

    • Green Colour means – all the tools are available to the MCP server.
    • Orange Colour means – it is loading the tools.
    • Red Colour means – it is not able to connect. In this case, we need to check & think what could be the possible issue in the MCP client-server connection.
    Step 5: Test it by giving a prompt

    In the cursor, you can open the chat panel by pressing  ‘CTRL + L’

    There, you keep the “Agent” mode and throw a prompt like below.

    Can you list the in-progress Jira tickets?

    If it is responding correctly, then we are good.

    Reference

    Repo – https://github.com/sooperset/mcp-atlassian

    README.md file – https://github.com/sooperset/mcp-atlassian/blob/main/README.md

     

    Thank you.

    If you are interested in learning DevOps, please have a look at the articles below, which you might find informative.