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.2.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.2-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: piercloud_mcp-0.1.2.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.2.tar.gz
Algorithm Hash digest
SHA256 2a14f61daf59b05edf7a9a332d2361842ef15d8b117fc405782689df32bc8049
MD5 4e197ec320ec17b6dd493da92555b3b2
BLAKE2b-256 187870238df0b29b2f06a5d917d0ccc8a747353213f0c9b57397921d038bc308

See more details on using hashes here.

File details

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

File metadata

  • Download URL: piercloud_mcp-0.1.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9c130b7b180510bfecf09c81eb30581c94a6b49bd8ca33d8e0bdd91e85d275a6
MD5 b8f6d63f56a7d43a791db7f7862479d6
BLAKE2b-256 296bb55bb051bb1fe56cd368e8eab48bbcb3e87ff181d81c9b500be7b523e4ed

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