Skip to main content
Glama

MCPCloud

Self-hosted MCP (Model Context Protocol) gateway. Write any Python function, register it as a skill, and it instantly becomes a tool that Claude Desktop, Claude API, Cursor, or any MCP-compatible client can call.

Deploy to AWS AWS Marketplace License

Website: mcpcloud.dev · GitHub: carsor007/mcpcloud


How it works

Claude Desktop / Claude API / any MCP client
            ↓  MCP tool call
        MCPCloud  (this repo)
            ↓  your code runs
    Jira · Slack · Salesforce · anything

Every Python function registered as a skill becomes an MCP tool. No vendor lock-in, no proprietary agent framework — just functions.


Related MCP server: Xiaobai Print MCP

Quickstart

Run locally with Docker:

git clone https://github.com/carsor007/mcpcloud.git
cd mcpcloud
cp .env.example .env
docker compose up

Open http://localhost:8000/ui — the tool browser shows all registered skills.

Connect Claude Desktop:

curl http://localhost:8000/mcp/jira_ops/config

Paste the returned JSON into ~/Library/Application Support/Claude/claude_desktop_config.json under "mcpServers". Restart Claude Desktop.


Adding a skill

Drop a .py file into skills/. Any file with a register_all() function is loaded automatically on startup.

# skills/my_tools.py
from registry import SkillResult, get_registry

async def my_skill(input: dict, context: dict) -> SkillResult:
    '''One-line description shown in the UI.'''
    return SkillResult(success=True, output={"result": input.get("text", "")})

def register_all():
    get_registry().register(
        "my_tools",   # agent type  — groups skills in the sidebar
        "my_skill",   # skill name  — shown under the group
        my_skill,
        schema={
            "type": "object",
            "required": ["text"],
            "properties": {
                "text": {"type": "string", "description": "Input text"}
            }
        }
    )

Restart the server. The skill appears in the UI and is immediately callable as an MCP tool.


Included skills

Both work out of the box — real API calls run when credentials are configured, stub data is returned otherwise.

jira_ops

Skill

Description

create_ticket

Create a Jira issue with priority, type, and description

get_ticket

Fetch status, assignee, and priority by issue key

search_tickets

Run a JQL query and return a summary list

Configure by setting JIRA_URL, JIRA_EMAIL, JIRA_API_TOKEN in .env.

slack_ops

Skill

Description

send_message

Post a message to a channel with optional field grid

alert

Send an urgent alert with severity badge — critical sends @channel

Configure by setting SLACK_WEBHOOK_URL in .env.


Deploy to AWS

The Deploy to AWS button above launches a CloudFormation stack in your account. The public image is already hosted — no ECR setup required.

It provisions:

  • ECS Fargate — 2 tasks, no EC2 to manage

  • ElastiCache Redis — session tracking across workers (~$15/month for t4g.micro)

  • Application Load Balancer — with optional HTTPS via ACM

  • Secrets Manager — stores Jira, Slack, and API credentials securely

You will need: a VPC with at least 2 public subnets.

One-click deploy (console):

Click the Deploy to AWS button above.

CLI deploy:

cd deploy/aws
make deploy \
  VPC_ID=vpc-xxxxxxxxxxxxxxxxx \
  PUBLIC_SUBNETS=subnet-aaa,subnet-bbb \
  PRIVATE_SUBNETS=subnet-ccc,subnet-ddd

After deployment, retrieve your URLs:

make outputs

Self-hosting your own image (optional — if you've modified the code):

cd deploy/aws
make ecr-public-create        # one-time: creates public ECR repo
ECR_PUBLIC_ALIAS=your_alias make push-public

Configuration

Variable

Required

Description

REDIS_URL

No

Enables multi-worker session tracking. Set automatically in Docker Compose and CloudFormation.

JIRA_URL

No

e.g. https://your-domain.atlassian.net

JIRA_EMAIL

No

Atlassian account email

JIRA_API_TOKEN

No

Create at Atlassian

JIRA_PROJECT

No

Default project key (default: IT)

SLACK_WEBHOOK_URL

No

Create at Slack

ANTHROPIC_API_KEY

No

Required only by skills that call Claude

OPENAI_API_KEY

No

Required only by skills that call OpenAI


License

Apache 2.0 — see LICENSE.

Free to self-host. Managed deployment available on AWS Marketplace.

F
license - not found
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

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/carsor007/mcpcloud'

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