Skip to main content

A scalable MCP server with clean architecture

Project description

Pier Cloud MCP Server

A scalable Model Context Protocol server with clean architecture.

Installation

# Install via pip
pip install piercloud-mcp

# Or via pipx (recommended for CLI tools)
pipx install piercloud-mcp

Quick Start

# Local mode (stdio)
piercloud-mcp

# Production mode (HTTP/SSE)
piercloud-mcp --sse --port 8000

Setup for Claude Desktop

Easy way (recommended):

pipx install piercloud-mcp
piercloud-mcp --install-claude

This will prompt for your credentials and configure Claude automatically.

Manual way:

  1. Install the package:
pipx install piercloud-mcp
  1. Find the installation path:
which piercloud-mcp
# Output: /Users/yourname/.local/bin/piercloud-mcp (macOS/Linux)
# or C:\Users\yourname\.local\bin\piercloud-mcp.exe (Windows)
  1. Add to Claude config with the full path:
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "piercloud": {
      "command": "/Users/yourname/.local/bin/piercloud-mcp",
      "env": {
        "PIERCLOUD_CLIENT_ID": "your-client-id",
        "PIERCLOUD_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}
  1. Restart Claude Desktop

Production Deployment

Deploy as HTTP server:

# Run server
piercloud-mcp --sse --port 8000

# With custom host
piercloud-mcp --sse --host 0.0.0.0 --port 8000

Remote MCP Server (Claude, Cline, etc)

{
  "mcpServers": {
    "pier": {
      "url": "https://mcp.piercloud.io/mcp/sse"
    }
  }
}

Adding Tools

Create a new file in src/pier_mcp/tools/ and register:

from pydantic import BaseModel, Field

class MyToolInput(BaseModel):
    param: str = Field(description="Parameter description")

def register_my_tools(mcp):
    @mcp.tool("my_tool", "Tool description", MyToolInput)
    async def my_tool(args: MyToolInput) -> str:
        return f"Result: {args.param}"

Then import in main.py:

from pier_mcp.tools.my_tools import register_my_tools
register_my_tools(mcp)

Architecture

  • server.py - Core MCP server with tool registry
  • tools/ - Tool implementations (one file per domain)
  • main.py - Entry point and tool registration

Clean, minimal, scalable.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

piercloud_mcp-0.1.3.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

piercloud_mcp-0.1.3-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

File details

Details for the file piercloud_mcp-0.1.3.tar.gz.

File metadata

  • Download URL: piercloud_mcp-0.1.3.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.13.1 Darwin/25.2.0

File hashes

Hashes for piercloud_mcp-0.1.3.tar.gz
Algorithm Hash digest
SHA256 a45fdc36d051d2b2b67c944f4d3cbda3ba4d15497a99b50ab8d11af174008e86
MD5 481ab5a7ec0ba9e8dc9754c1e883f952
BLAKE2b-256 994a2820b62ecb3c6628e14233d8dd494a354f4e628bd6392ab6db9c2cc98a9b

See more details on using hashes here.

File details

Details for the file piercloud_mcp-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: piercloud_mcp-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 10.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.13.1 Darwin/25.2.0

File hashes

Hashes for piercloud_mcp-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 3b10273f6c30ce0522a446d65fc5f3e547e08c59fdfbfd129d68047e9e5ea691
MD5 cff9ac268eb4ee1f7e152e87da8e03ed
BLAKE2b-256 647077d5b627587c06ed5defb96b4ca4111188ac3409109449c9d297249191f2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page