clinkLABSCO SUMMARY
Six tools ship disabled on purpose, and that is the right default.
Every tool's workflow description occupies context whether or not you call it, so analyze, refactor, testgen, secaudit, docgen and tracer ship listed in DISABLED_TOOLS until you remove them from it — a one-line change. version and listmodels cannot be disabled. Cost lands on your own provider keys, not on the client, so a multi-model consensus run is billed by whoever you called.
What it is
A provider abstraction layer for coding CLIs. It lets Claude Code, Codex CLI, Gemini CLI, Cursor and similar clients call other models mid-task and keeps a conversation thread across those calls, so a model brought in at step 11 knows what a different model said at step 7. It ships as pal-mcp-server.
What you get
- A bridge to external AI CLIs, including spawning isolated subagents in a fresh context that return only their final result —
clink - Collaboration and planning tools enabled by default: brainstorming and second opinions, extended reasoning, structured plans, and multi-model debate with stance steering —
chat,thinkdeep,planner,consensus - Code quality work: systematic root-cause investigation, pre-commit validation, and reviews with severity levels —
debug,precommit,codereview - Utilities that are on by default: forced current-year API and SDK lookups in a subprocess, and a critical-analysis check against reflexive agreement —
apilookup,challenge - Off by default, enabled by editing
DISABLED_TOOLS: architecture and dependency analysis, refactoring, test generation, OWASP Top 10 security audits, documentation generation and call-flow tracing —analyze,refactor,testgen,secaudit,docgen,tracer - Conversation continuity across tools and models, including continuing after your CLI's own context resets
- Automatic workarounds for MCP's 25K limit on large prompts and responses
Requirements
API credentials in .env for whichever providers you want — Gemini, OpenAI, Azure, X.AI, OpenRouter, DIAL, Ollama; it activates each provider that has credentials. Two install paths: clone and run ./run-server.sh, which configures Claude Desktop, Claude Code, Gemini CLI, Codex CLI and Qwen CLI for you, or launch through uvx straight from the repository. DEFAULT_MODEL, DISABLED_TOOLS, CONVERSATION_TIMEOUT_HOURS and MAX_CONVERSATION_TURNS are set in the client config. Version 9.8.2.
Setup effort
One command plus a key — uvx --from git+https://github.com/BeehiveInnovations/pal-mcp-server.git pal-mcp-server, then supply credentials
USE CASES
Getting a code review that is not just one model's opinion
Run the review, then hand the findings to a second and third model in the same thread — each sees what the previous one said, and you get one merged list rather than three separate ones.
Deciding between two directions before you build either
Ask several models to debate the choice with stances assigned, then continue straight into implementation with the debate still in context.
Offloading a heavy investigation without polluting your session
Spawn a subagent in a fresh context to walk the files and audit the module; only its final report comes back into your conversation.
Stopping the model from writing against an API that changed
Force a current-year documentation lookup in a subprocess before it writes code, instead of trusting its training data.
18 tools
Listed in project docs. Your client may show a different list.
chatthinkdeepplannerconsensusdebugprecommitcodereviewanalyzerefactortestgensecauditdocgenapilookupchallengetracerversionlistmodelsBEFORE YOU INSTALL
What to know first
Tools you get
18 tools named in the project's documentation.
Requires
- Python 3.10+
- Git
- uv installed (provides uvx)
Where it runs
All 4 documented clients run the server on your machine.
INSTALLATION
Connect your client
Server setup
Setup
git clone https://github.com/BeehiveInnovations/pal-mcp-server.git
cd pal-mcp-server
./run-server.shuvx
uvx --from git+https://github.com/BeehiveInnovations/pal-mcp-server.git pal-mcp-serverMCP Clients
Claude Desktop
{
"mcpServers": {
"pal": {
"command": "sh",
"args": [
"-c",
"for p in $(which uvx 2>/dev/null) $HOME/.local/bin/uvx /opt/homebrew/bin/uvx /usr/local/bin/uvx uvx; do [ -x \"$p\" ] && exec \"$p\" --from git+https://github.com/BeehiveInnovations/pal-mcp-server.git pal-mcp-server; done; echo 'uvx not found' >&2; exit 1"
],
"env": {
"PATH": "/usr/local/bin:/usr/bin:/bin:/opt/homebrew/bin:~/.local/bin",
"GEMINI_API_KEY": "<YOUR_GEMINI_API_KEY>"
}
}
}
}Claude Desktop → Settings → Developer → Edit Config. <YOUR_GEMINI_API_KEY> is your key, or swap GEMINI_API_KEY for the provider you use (OPENAI_API_KEY, OPENROUTER_API_KEY, XAI_API_KEY…). Use OpenRouter or native provider keys, not both.
Claude Code
{
"mcpServers": {
"pal": {
"command": "sh",
"args": [
"-c",
"for p in $(which uvx 2>/dev/null) $HOME/.local/bin/uvx /opt/homebrew/bin/uvx /usr/local/bin/uvx uvx; do [ -x \"$p\" ] && exec \"$p\" --from git+https://github.com/BeehiveInnovations/pal-mcp-server.git pal-mcp-server; done; echo 'uvx not found' >&2; exit 1"
],
"env": {
"PATH": "/usr/local/bin:/usr/bin:/bin:/opt/homebrew/bin:~/.local/bin",
"GEMINI_API_KEY": "<YOUR_GEMINI_API_KEY>"
}
}
}
}Put this in .mcp.json in your project root. <YOUR_GEMINI_API_KEY> is your key, or swap GEMINI_API_KEY for the provider you use (OPENAI_API_KEY, OPENROUTER_API_KEY, XAI_API_KEY…). Use OpenRouter or native provider keys, not both.
Gemini CLI
{
"mcpServers": {
"pal": {
"command": "sh",
"args": [
"-c",
"for p in $(which uvx 2>/dev/null) $HOME/.local/bin/uvx /opt/homebrew/bin/uvx /usr/local/bin/uvx uvx; do [ -x \"$p\" ] && exec \"$p\" --from git+https://github.com/BeehiveInnovations/pal-mcp-server.git pal-mcp-server; done; echo 'uvx not found' >&2; exit 1"
],
"env": {
"PATH": "/usr/local/bin:/usr/bin:/bin:/opt/homebrew/bin:~/.local/bin",
"GEMINI_API_KEY": "<YOUR_GEMINI_API_KEY>"
}
}
}
}Add to ~/.gemini/settings.json. <YOUR_GEMINI_API_KEY> is your key, or swap GEMINI_API_KEY for the provider you use (OPENAI_API_KEY, OPENROUTER_API_KEY, XAI_API_KEY…). Use OpenRouter or native provider keys, not both.
Codex
[mcp_servers.pal]
command = "bash"
args = ["-c", "for p in $(which uvx 2>/dev/null) $HOME/.local/bin/uvx /opt/homebrew/bin/uvx /usr/local/bin/uvx uvx; do [ -x \"$p\" ] && exec \"$p\" --from git+https://github.com/BeehiveInnovations/pal-mcp-server.git pal-mcp-server; done; echo 'uvx not found' >&2; exit 1"]
tool_timeout_sec = 1200
[mcp_servers.pal.env]
PATH = "/usr/local/bin:/usr/bin:/bin:/opt/homebrew/bin:$HOME/.local/bin:$HOME/.cargo/bin:$HOME/bin"
GEMINI_API_KEY = "<YOUR_GEMINI_API_KEY>"Add to ~/.codex/config.toml. <YOUR_GEMINI_API_KEY> is your key, or swap GEMINI_API_KEY for the provider you use (OPENAI_API_KEY, OPENROUTER_API_KEY, XAI_API_KEY…). Use OpenRouter or native provider keys, not both.