Larks
FreeNot checkedEnables fetching document content from Lark Suite using OAuth authentication, with support for streamable HTTP transport and Docker deployment.
About
Enables fetching document content from Lark Suite using OAuth authentication, with support for streamable HTTP transport and Docker deployment.
README
Python implementation of the Larks MCP server using FastMCP, converted from Node.js/TypeScript.
Installation
cd python
pip install -r requirements.txt
Running the Server
Option 1: Using Docker Compose (Recommended)
# Copy .env.example to .env and fill in your credentials
cp .env.example .env
# Edit .env with your credentials
# Build and start the container
docker compose up -d
# View logs
docker compose logs -f
# Stop the container
docker compose down
Option 2: Using .env file (Local)
# Copy .env.example to .env and fill in your credentials
cp .env.example .env
# Edit .env with your credentials
# Run the server
python server.py
Option 3: Using environment variables
# Set environment variables
export LARKS_CLIENT_ID=your_client_id
export LARKS_CLIENT_SECRET=your_client_secret
export MCP_PORT=48080
# Run the server
python server.py
Note: Environment variables take precedence over .env file values.
Configuration
The server loads configuration from .env file and environment variables (env vars take precedence):
LARKS_CLIENT_ID: OAuth app ID (required)LARKS_CLIENT_SECRET: OAuth app secret (required)LARKS_REDIRECT_URI: OAuth redirect URI (default:http://localhost:48080/oauth/callback)LARKS_BEARER_TOKEN: Direct bearer token (optional, fallback if OAuth not used)LARKS_DOMAIN: OAuth domain (default:https://open.larksuite.com)LARKS_API_DOMAIN: API domain (default:https://open.larksuite.com)MCP_PORT: Server port (default:48080)MCP_HOST: Server host (default:0.0.0.0)
Cursor MCP Configuration
Use streamable HTTP transport:
{
"mcpServers": {
"larks-docs": {
"transport": "streamableHttp",
"url": "http://localhost:48080/mcp"
}
}
}
Start the server separately:
python server.py
Docker
Building the Image
docker build -t larks-mcp-python .
Running with Docker Compose
# Start the service
docker compose up -d
# View logs
docker compose logs -f larks-mcp-python
# Stop the service
docker compose down
Environment Variables in Docker
You can provide environment variables in several ways:
Via docker-compose.yml (recommended for Docker):
environment: - LARKS_CLIENT_ID=your_client_id - LARKS_CLIENT_SECRET=your_client_secretVia .env file (mounted as volume):
volumes: - ./.env:/app/.env:roVia host environment variables:
export LARKS_CLIENT_ID=your_client_id export LARKS_CLIENT_SECRET=your_client_secret docker compose up -d
Features
- ✅ Streamable HTTP transport (plain HTTP POST, no SSE)
- ✅ OAuth authentication flow
- ✅ Document content fetching
- ✅ Same API as Node.js version
- ✅ Environment variable and .env file configuration
- ✅ Automatic token refresh handling
- ✅ Docker support with docker-compose
Differences from Node.js Version
- Uses FastMCP for easier server setup
- Async/await pattern throughout
- Python-native HTTP client (httpx)
- Same functionality, cleaner Python code
- Uses python-dotenv for .env file support
Installing Larks
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/hpower2/larks-mcpFAQ
Is Larks MCP free?
Yes, Larks MCP is free — one-click install via Unyly at no cost.
Does Larks need an API key?
No, Larks runs without API keys or environment variables.
Is Larks hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install Larks in Claude Desktop, Claude Code or Cursor?
Open Larks on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Larks with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
