
Fastn
STDIODynamic API-driven tool registration and execution platform integrated with AI services.
Dynamic API-driven tool registration and execution platform integrated with AI services.
Unified Context Layer (UCL) is a multi-tenant Model Context Protocol (MCP) server that enables AI agents, automation platforms, and applications to connect to over 1,000 SaaS tools—such as Slack, Jira, Gmail, Shopify, Notion, and more—via a single standardized /command endpoint. UCL abstracts away SDK sprawl, glue code, and complex authentication flows, allowing developers to orchestrate context-rich, cross-platform integrations without building and maintaining separate connectors for each service.
The easiest way to install the UCL server is using pip:
pip install fastn-mcp-server
To find the exact path of the installed command:
which fastn-mcp-server
where fastn-mcp-server
{ "mcpServers": { "fastn": { "command": "fastn-mcp-server", "args": [ "--api_key", "YOUR_API_KEY", "--space_id", "YOUR_WORKSPACE_ID" ] } } }
# Clone repository and navigate to directory git clone <your-repo-url> && cd fastn-server # macOS/Linux: Install UV, create virtual environment, and install dependencies curl -LsSf https://astral.sh/uv/install.sh | sh && uv venv && source .venv/bin/activate && uv pip install -e . # Windows (PowerShell): Install UV, create a virtual environment, and install dependencies powershell -c "irm https://astral.sh/uv/install.ps1 | iex" && uv venv && .venv\Scripts\activate && uv pip install -e . # Install dependencies directly uv pip install "httpx>=0.28.1" "mcp[cli]>=1.2.0"
The server supports two authentication methods:
# Package installation fastn-mcp-server --api_key YOUR_API_KEY --space_id YOUR_WORKSPACE_ID # Manual installation uv run fastn-server.py --api_key YOUR_API_KEY --space_id YOUR_WORKSPACE_ID
# Package installation fastn-mcp-server --space_id YOUR_WORKSPACE_ID --tenant_id YOUR_TENANT_ID --auth_token YOUR_AUTH_TOKEN # Manual installation uv run fastn-server.py --space_id YOUR_WORKSPACE_ID --tenant_id YOUR_TENANT_ID --auth_token YOUR_AUTH_TOKEN
Open the Claude configuration file:
notepad "%APPDATA%\Claude\claude_desktop_config.json"
or code "%APPDATA%\Claude\claude_desktop_config.json"
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
Add the appropriate configuration:
{ "mcpServers": { "fastn": { "command": "/path/to/fastn-mcp-server", "args": [ "--api_key", "YOUR_API_KEY", "--space_id", "YOUR_WORKSPACE_ID" ] } } }
Or with tenant authentication:
{ "mcpServers": { "fastn": { "command": "/path/to/fastn-mcp-server", "args": [ "--space_id", "YOUR_WORKSPACE_ID", "--tenant_id", "YOUR_TENANT_ID", "--auth_token", "YOUR_AUTH_TOKEN" ] } } }
API Key authentication:
{ "mcpServers": { "fastn": { "command": "/path/to/your/uv", "args": [ "--directory", "/path/to/your/fastn-server", "run", "fastn-server.py", "--api_key", "YOUR_API_KEY", "--space_id", "YOUR_WORKSPACE_ID" ] } } }
Tenant authentication:
{ "mcpServers": { "fastn": { "command": "/path/to/your/uv", "args": [ "--directory", "/path/to/your/fastn-server", "run", "fastn-server.py", "--space_id", "YOUR_WORKSPACE_ID", "--tenant_id", "YOUR_TENANT_ID", "--auth_token", "YOUR_AUTH_TOKEN" ] } } }
Create a .env
file in your project directory with your UCL credentials:
# Configuration Format 1: Basic API Key and Space ID API_KEY=your_actual_api_key SPACE_ID=your_actual_space_id # Configuration Format 2: Extended with Tenant ID and Auth Token TENANT_ID=your_tenant_id AUTH_TOKEN=your_actual_auth_token # Set configuration mode: "basic" or "extended" CONFIG_MODE=extended
First, build and start the container:
docker-compose up --build
This will create the UCL server image and verify it starts correctly.
Open the Claude configuration file:
notepad "%APPDATA%\Claude\claude_desktop_config.json"
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
Add the Docker configuration:
{ "mcpServers": { "ucl": { "command": "docker", "args": [ "run", "-i", "--rm", "--env-file", "/path/to/your/fastn-stdio-server/.env", "ucl-stdio-server" ] } } }
Note: Replace /path/to/your/fastn-stdio-server/.env
with the actual path to your .env
file.
If you prefer to pass environment variables directly:
{ "mcpServers": { "ucl": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "API_KEY=your_actual_api_key", "-e", "SPACE_ID=your_actual_space_id", "-e", "TENANT_ID=your_tenant_id", "-e", "AUTH_TOKEN=your_actual_auth_token", "-e", "CONFIG_MODE=extended", "ucl-stdio-server" ] } } }
If you encounter an error like this during installation:
ValueError: Unable to determine which files to ship inside the wheel using the following heuristics:
The most likely cause of this is that there is no directory that matches the name of your project (fastn).
Quick Fix:
pyproject.toml
has the wheel configuration:[tool.hatch.build.targets.wheel] packages = ["."]
uv pip install "httpx>=0.28.1" "mcp[cli]>=1.2.0"
This project is licensed under the terms included in the LICENSE file.