CCM
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Claude Code Marketplaces

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Skill index
  • MCP index
  • Marketplace index
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by mertbuilds.com

Independent project, not affiliated with Anthropic
the-basilisk-ai avatar

Squad

the-basilisk-ai/squad-mcp
240 toolsHTTPregistry active
Summary

Connects Squad's product management platform to Claude or any MCP client via OAuth, exposing 30+ tools for managing opportunities, solutions, goals, feedback, and knowledge. You get full CRUD on each entity type, plus relationship management between them, semantic search across your workspace, and strategic views like OST mapping and roadmaps. The server mints JWTs from OAuth tokens and proxies requests to Squad's API with user isolation. Reach for this when you want to research product ideas, build roadmaps, or query customer insights without leaving your AI conversation. Authentication happens through PropelAuth with automatic OAuth discovery, and there's a companion NPM package if you want to use the tools programmatically in Node apps.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
ego lite browserego lite browser
ego lite browser
Fastest browser for AI agents to run web automation tasks, always free.
Download Free life-time →
Granola, the best AI meeting recorder
Granola, the best AI meeting recorder
Notes, actions and memory. Without a meeting bot. First month 100% off.
Download for free →
CodeHealth MCP ServerCodeHealth MCP Server
CodeHealth MCP Server
Protect your code quality, stop the AI slop.
Try For Free →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Agent, connect blockchain
Agent, connect blockchain
Connect your Claude agent to live crypto prices and trading routes via 1inch
Get the MCP →
Block distraction from your iPhone for freeBlock distraction from your iPhone for free
Block distraction from your iPhone for free
Block distracting apps from your iPhone permanently without a 3rd party app. Free and open source.
Block now (100% free) →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
ego lite browserego lite browser
ego lite browser
Fastest browser for AI agents to run web automation tasks, always free.
Download Free life-time →
Granola, the best AI meeting recorder
Granola, the best AI meeting recorder
Notes, actions and memory. Without a meeting bot. First month 100% off.
Download for free →
CodeHealth MCP ServerCodeHealth MCP Server
CodeHealth MCP Server
Protect your code quality, stop the AI slop.
Try For Free →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Agent, connect blockchain
Agent, connect blockchain
Connect your Claude agent to live crypto prices and trading routes via 1inch
Get the MCP →
Block distraction from your iPhone for freeBlock distraction from your iPhone for free
Block distraction from your iPhone for free
Block distracting apps from your iPhone permanently without a 3rd party app. Free and open source.
Block now (100% free) →

Tools

Public tool metadata for what this MCP can expose to an agent.

40 tools
list_workspacesList all organisations and workspaces available to the current user. Use this to see what workspaces you can switch to.

List all organisations and workspaces available to the current user. Use this to see what workspaces you can switch to.

No parameter schema in public metadata yet.

select_workspaceSelect which organisation and workspace to use for subsequent operations. Required when user has access to multiple orgs/workspaces.2 params

Select which organisation and workspace to use for subsequent operations. Required when user has access to multiple orgs/workspaces.

Parameters* required
orgIdstring
The ID of the organisation to select
workspaceIdstring
The ID of the workspace to select
get_workspaceGet details of the current workspace. Workspaces contain the project name, detailed description, and mission statement.

Get details of the current workspace. Workspaces contain the project name, detailed description, and mission statement.

No parameter schema in public metadata yet.

update_workspaceUpdate the current workspace's details such as name, description, mission statement.5 params

Update the current workspace's details such as name, description, mission statement.

Parameters* required
descriptionstring
Updated detailed description of the workspace
homepageUrlstring
Updated URL to the workspace's homepage
logoUrlstring
Updated URL to the workspace's logo
missionStatementstring
Updated mission statement for the workspace
namestring
Updated name for the workspace
create_opportunityCreate a new opportunity. An opportunity is a detailed problem statement identified for the organisation. It doesn't have any solutionising and simply captures an opportunity for the organisation.2 params

Create a new opportunity. An opportunity is a detailed problem statement identified for the organisation. It doesn't have any solutionising and simply captures an opportunity for the organisation.

Parameters* required
descriptionstring
A short description of the opportunity, detailing the problem statement and opportunity for the business
titlestring
A short title
list_opportunitiesList all opportunities in the workspace. Opportunities are problem statements identified for the organisation.

List all opportunities in the workspace. Opportunities are problem statements identified for the organisation.

No parameter schema in public metadata yet.

get_opportunityGet details of a specific opportunity by ID. Opportunities are problem statements identified for the organisation.2 params

Get details of a specific opportunity by ID. Opportunities are problem statements identified for the organisation.

Parameters* required
opportunityIdstring
The ID of the opportunity to retrieve
relationshipsarray
Relationships to include in the response. Outcomes are business objectives/goals. Solutions are proposed approaches to address opportunities. Feedback is additional information or insights related...
update_opportunityUpdate an existing opportunity's details such as title, description, or status.4 params

Update an existing opportunity's details such as title, description, or status.

Parameters* required
descriptionstring
Updated description
opportunityIdstring
The ID of the opportunity to update
statusstring
Updated status: New hasn't been developed, InProgress means we're currently building out solutions and implementing them. Planned means we've finished developing the solutions and are ready to impl...one of New · Solved · Planned · InProgress
titlestring
Updated title
delete_opportunityDelete an opportunity by ID.1 params

Delete an opportunity by ID.

Parameters* required
opportunityIdstring
The ID of the opportunity to delete
generate_solutionsStart the process of generating solutions for an opportunity. This will use Squad AI to generate new potential solutions for a given opportunity.2 params

Start the process of generating solutions for an opportunity. This will use Squad AI to generate new potential solutions for a given opportunity.

Parameters* required
opportunityIdstring
The ID of the opportunity to generate solutions for
promptstring
Optional prompt to guide solution generation
manage_opportunity_relationshipsAdd or remove relationships between an opportunity and other entities (solutions, outcomes, or insights).5 params

Add or remove relationships between an opportunity and other entities (solutions, outcomes, or insights).

Parameters* required
actionstring
Whether to add or remove the relationshipsone of add · remove
insightIdsarray
IDs of insight items to relate to this opportunity
opportunityIdstring
The ID of the opportunity to manage relationships for
outcomeIdsarray
IDs of outcomes to relate to this opportunity
solutionIdsarray
IDs of solutions to relate to this opportunity
create_solutionCreate a new solution. A solution is a proposed approach to address an opportunity. The 'prd' field should contain the complete detailed specification, while 'description' should be a brief summary for AI context.6 params

Create a new solution. A solution is a proposed approach to address an opportunity. The 'prd' field should contain the complete detailed specification, while 'description' should be a brief summary for AI context.

Parameters* required
consarray
List of cons/drawbacks of this solution. This is a sentence or two max.
descriptionstring
A brief AI-friendly summary of the solution for context and search purposes. Keep this concise.
prdstring
The complete Product Requirements Document (PRD) containing the full detailed specification, implementation plan, and requirements for this solution. This is the primary content field.
prosarray
List of pros/benefits of this solution. This is a sentence or two max.
statusstring
Status of the solution: New hasn't been developed, InDevelopment means we're currently building out requirements and implementing them. Planned means we've finished developing the solutions and are...one of New · InDevelopment · Planned · Complete · Cancelled · Backlog
titlestring
A short title for the solution
list_solutionsList all solutions in the workspace. Solutions are proposed approaches to address opportunities.2 params

List all solutions in the workspace. Solutions are proposed approaches to address opportunities.

Parameters* required
filterstring
Filter solutions: 'roadmap' returns built solutions (user-created or edited), 'recommended' returns AI-generated suggestions not yet acted on. Omit to return all.one of roadmap · recommended
horizonstring
Filter by time horizon: 'now' for current work, 'next' for upcoming, 'later' for future.one of now · next · later
get_solutionGet details of a specific solution by ID.2 params

Get details of a specific solution by ID.

Parameters* required
relationshipsarray
Relationships to include in the response. Opportunities are problem statements identified for the organisation. Outcomes are business objectives/goals. Feedback is additional information or insight...
solutionIdstring
The ID of the solution to retrieve
edit_solution_prdEdit the PRD (Product Requirements Document) of a solution. Use this to write or rewrite the detailed specification, implementation plan, and requirements for a solution.2 params

Edit the PRD (Product Requirements Document) of a solution. Use this to write or rewrite the detailed specification, implementation plan, and requirements for a solution.

Parameters* required
prdstring
The complete updated PRD content. This replaces the existing PRD entirely.
solutionIdstring
The ID of the solution to edit
update_solutionUpdate a solution's metadata (title, description, pros, cons, status, horizon). To edit the PRD content, use edit_solution_prd. To change priority, use prioritise_solutions. To move a solution between roadmap horizons, set the horizon field.8 params

Update a solution's metadata (title, description, pros, cons, status, horizon). To edit the PRD content, use edit_solution_prd. To change priority, use prioritise_solutions. To move a solution between roadmap horizons, set the horizon field.

Parameters* required
consarray
Updated list of cons/drawbacks
descriptionstring
Updated brief AI-friendly summary for context and search purposes
horizonstring
Roadmap time horizon: 'now' for current work, 'next' for upcoming, 'later' for future.one of now · next · later
prdstring
Updated complete Product Requirements Document (PRD) containing the full detailed specification and implementation plan
prosarray
Updated list of pros/benefits
solutionIdstring
The ID of the solution to update
statusstring
Status of the solution: New hasn't been developed, InDevelopment means we're currently building out requirements and implementing them. Planned means we've finished developing the solutions and are...one of New · InDevelopment · Planned · Complete · Cancelled · Backlog
titlestring
Updated title
delete_solutionDelete a solution by ID.1 params

Delete a solution by ID.

Parameters* required
solutionIdstring
The ID of the solution to delete
manage_solution_relationshipsAdd or remove relationships between a solution and other entities (opportunities).3 params

Add or remove relationships between a solution and other entities (opportunities).

Parameters* required
actionstring
Whether to add or remove the relationshipsone of add · remove
opportunityIdsarray
IDs of opportunities to relate to this solution
solutionIdstring
The ID of the solution to manage relationships for
prioritise_solutionsReorder the priority of solutions by moving them before a specified solution. This is the only way to change solution priority/ordering in the workspace.2 params

Reorder the priority of solutions by moving them before a specified solution. This is the only way to change solution priority/ordering in the workspace.

Parameters* required
beforeIdvalue
ID of the solution before which to place the solutions, or null to place at the end
solutionIdsarray
List of solution IDs to move
create_goalCreate a new goal. A goal is a business objective that the organization aims to achieve.7 params

Create a new goal. A goal is a business objective that the organization aims to achieve.

Parameters* required
analyticEventsarray
List of analytic events associated with the goal
descriptionstring
A detailed description of the goal
hideContentboolean
Whether the goal content should be hidden
ownerIdstring
ID of the goal owner
prioritynumber
Importance level of the goal (1–5, higher = more important)
titlestring
A short title for the goal
trendnumber
Trend indicator for the goal (numeric)
list_goalsList all goals in the workspace. Goals are business objectives that the organization aims to achieve.

List all goals in the workspace. Goals are business objectives that the organization aims to achieve.

No parameter schema in public metadata yet.

get_goalGet details of a specific goal by ID. Goals are business objectives that the organization aims to achieve.2 params

Get details of a specific goal by ID. Goals are business objectives that the organization aims to achieve.

Parameters* required
goalIdstring
The ID of the goal to retrieve
relationshipsarray
Relationships to include in the response. Opportunities are problem statements identified for the organisation. Solutions are proposed approaches to address opportunities. Insights are additional i...
update_goalUpdate an existing goal's details.8 params

Update an existing goal's details.

Parameters* required
analyticEventsarray
Updated list of analytic events
descriptionstring
Updated description
goalIdstring
The ID of the goal to update
hideContentboolean
Whether the goal content should be hidden
ownerIdstring
Updated ID of the goal owner
prioritynumber
Updated importance level (1–5, higher = more important)
titlestring
Updated title
trendnumber
Updated trend indicator
delete_goalDelete a goal by ID.1 params

Delete a goal by ID.

Parameters* required
goalIdstring
The ID of the goal to delete
manage_goal_relationshipsAdd or remove relationships between a goal and opportunities for the business.3 params

Add or remove relationships between a goal and opportunities for the business.

Parameters* required
actionstring
Whether to add or remove the relationshipsone of add · remove
goalIdstring
The ID of the goal to manage relationships for
opportunityIdsarray
IDs of opportunities to relate to this goal
create_knowledgeCreate a new knowledge entry. Knowledge entries are text documents that can be used as references or information sources.3 params

Create a new knowledge entry. Knowledge entries are text documents that can be used as references or information sources.

Parameters* required
contentstring
The full content of the knowledge
descriptionstring
A short summary of the knowledge content
titlestring
A short title for the knowledge
list_knowledgeList all knowledge entries in the workspace. Knowledge entries are text documents that can be used as references or information sources. List only shows the available items and a short description for the actual knowledge use the get by id call.

List all knowledge entries in the workspace. Knowledge entries are text documents that can be used as references or information sources. List only shows the available items and a short description for the actual knowledge use the get by id call.

No parameter schema in public metadata yet.

get_knowledgeGet details of a specific knowledge entry by ID. Knowledge entries are text documents that can be used as references or information sources.1 params

Get details of a specific knowledge entry by ID. Knowledge entries are text documents that can be used as references or information sources.

Parameters* required
knowledgeIdstring
The ID of the knowledge entry to retrieve
delete_knowledgeDelete a knowledge entry by ID.1 params

Delete a knowledge entry by ID.

Parameters* required
knowledgeIdstring
The ID of the knowledge entry to delete
create_feedbackCreate a new feedback entry. Feedback represents raw, unprocessed feedback from users that can later be analyzed and converted into insights.5 params

Create a new feedback entry. Feedback represents raw, unprocessed feedback from users that can later be analyzed and converted into insights.

Parameters* required
contentstring
The original raw feedback content from the user
sentimentCategorystring
Sentiment classification category: 'Positive', 'Neutral', or 'Negative'one of Positive · Neutral · Negative
sentimentConfidencenumber
Confidence in sentiment analysis (0-1)
sentimentScorenumber
Sentiment score from -1 (negative) to 1 (positive)
sourcestring
The source of the feedback (e.g., 'Typeform', 'Slack', 'Manual', 'Email', etc.)
list_feedbackList all feedback entries in the workspace. Feedback entries are raw customer feedback that can be processed into insights.

List all feedback entries in the workspace. Feedback entries are raw customer feedback that can be processed into insights.

No parameter schema in public metadata yet.

get_feedbackGet details of a specific feedback entry by ID. Feedback entries are raw customer feedback.2 params

Get details of a specific feedback entry by ID. Feedback entries are raw customer feedback.

Parameters* required
feedbackIdstring
The ID of the feedback entry to retrieve
relationshipsstring
Show insights that were generated from this feedback.one of insights
delete_feedbackDelete a feedback entry by ID.1 params

Delete a feedback entry by ID.

Parameters* required
feedbackIdstring
The ID of the feedback entry to delete
create_insightCreate a new insight entry. An insight is customer-generated feedback about your product, often from reviews, surveys, or questionnaires.3 params

Create a new insight entry. An insight is customer-generated feedback about your product, often from reviews, surveys, or questionnaires.

Parameters* required
descriptionstring
A short description of the insight
titlestring
A brief title summarizing the insight
typestring
The type of insight: 'Feedback' for customer feedback, 'Bug' for bug reports, or 'FeatureRequest' for feature requests.one of Feedback · Bug · FeatureRequest
list_insightsList all insights for the workspace. These insights are gathered from various sources, created by customers, and help understand how to improve the business.

List all insights for the workspace. These insights are gathered from various sources, created by customers, and help understand how to improve the business.

No parameter schema in public metadata yet.

get_insightGet details of a specific insight entry by ID. Insight entries are text documents that can be used as references or information sources.2 params

Get details of a specific insight entry by ID. Insight entries are text documents that can be used as references or information sources.

Parameters* required
insightIdstring
The ID of the insight entry to retrieve
relationshipsarray
Show other entities that this insight is related to.
delete_insightDelete an insight entry by ID.1 params

Delete an insight entry by ID.

Parameters* required
insightIdstring
The ID of the insight entry to delete
similarity_searchPerform a semantic similarity search across the workspace. This searches through knowledge documents, feedback insights, opportunities, and solutions to find content similar to your query. Each result will contain a nodeId or an id. These can be used to retrieve the full conte...2 params

Perform a semantic similarity search across the workspace. This searches through knowledge documents, feedback insights, opportunities, and solutions to find content similar to your query. Each result will contain a nodeId or an id. These can be used to retrieve the full conte...

Parameters* required
filtersarray
Filters to apply to the search. Options are: knowledge-base for knowledge documents, insights for insights, opportunities for opportunities, solutions for solutions.
querystring
The search query string
view_strategy_contextShow an entity in its product strategy tree — displays the entity, its parent chain, and direct children in a rich visual UI. ALWAYS use this tool when the user asks about strategy, prioritisation, reasoning, context, positioning, or 'why' behind any entity. Use it when the us...2 params

Show an entity in its product strategy tree — displays the entity, its parent chain, and direct children in a rich visual UI. ALWAYS use this tool when the user asks about strategy, prioritisation, reasoning, context, positioning, or 'why' behind any entity. Use it when the us...

Parameters* required
entityIdstring
The ID of the entity to view. Not required for workspace (uses current workspace).
entityTypestring
The type of entity to viewone of workspace · goal · opportunity · solution · insight · feedback
view_roadmapShow the product roadmap — solutions organized by time horizon (Now/Next/Later) with goal context. Use this when the user asks about the roadmap, what's planned, what's coming next, priorities, or wants to see an overview of solutions being built.3 params

Show the product roadmap — solutions organized by time horizon (Now/Next/Later) with goal context. Use this when the user asks about the roadmap, what's planned, what's coming next, priorities, or wants to see an overview of solutions being built.

Parameters* required
goalIdstring
Filter to solutions linked to this goal
showResolvedboolean
Include completed/cancelled solutionsdefault: false
statusFilterarray
Filter by solution statuses

Squad MCP Server

smithery badge

A remote MCP server that brings Squad — the AI product feedback intelligence platform — directly into your AI workflows. Connect Squad to Claude, ChatGPT, or any MCP-compatible AI assistant to turn raw user feedback into signals, insights, actions, and briefs without context switching.

Squad continuously ingests feedback, clusters it into signals, distils it into insights, and links it to the actions and goals that move your product forward. The MCP server exposes that same intelligence — read the evidence behind a decision, capture new feedback, and generate briefs from your assistant.

🚀 Quick Start

For Users

Connect Squad to your AI assistant in seconds:

Claude Code:

claude mcp add --transport http squad https://mcp.meetsquad.ai/mcp

On first use, you'll be prompted to authenticate via OAuth in your browser.

Other MCP Clients:

Connect using https://mcp.meetsquad.ai/mcp — OAuth configuration is automatically discovered via the server's .well-known/oauth-protected-resource metadata (which points clients at PropelAuth as the authorization server).

📖 Usage Examples

See USAGE_EXAMPLES.md for detailed real-world examples. A few things you can ask:

  • Triage feedback — "Capture this support ticket in Squad and tell me if it's a known theme."
  • Weekly review — "Run my weekly product review: what changed and what needs deciding?"
  • Ground the evidence — "Show me the customer signals behind insight IN-42."
  • Draft a brief — "Generate a brief for action AC-12."
  • Search everything — "Find all feedback related to onboarding friction."
  • Ground a ticket — "Pull the customer evidence behind AC-7 before I build it."

Squad entities are referenced by short display IDs so the assistant can cite its evidence:

PrefixEntityPrefixEntity
SI-SignalGL-Goal
IN-InsightBR-Brief
AC-ActionDC-Document
CL-Cluster

Tools

The server exposes 30 tools. Write tools require a token minted with the write:workspace scope; read tools only need read:workspace.

  • list_workspaces — List every organisation and workspace you can access, with the current selection marked.
  • select_workspace — Select which organisation and workspace subsequent tools operate on.
  • get_workspace_overview — One-call orientation: mission and description, top goals, recent signal activity, evidence-chain health, and open work counts.
  • update_workspace — Update the current workspace's name, description, mission statement or logo.
  • list_members — People in the current organisation with their user IDs.
  • search — Keyword search across signals, insights, actions, goals, documents and clusters.
  • get_entity — Fetch any entity by display ID (SI-1, IN-1, AC-1, GL-1, BR-1, DC-1, CL-1) or UUID. Also how you check on async work.
  • list_signals — Browse raw feedback signals with filters for source, type, sentiment, cluster and date range.
  • find_similar_signals — Semantically related signals for a given signal — "has anyone else said this?".
  • list_clusters — Browse signal clusters (recurring themes in feedback) with sizes and labels.
  • get_cluster — A cluster's label, stats, member signals and linked insights.
  • list_insights — Browse distilled insights ranked by combined score, with category/score/status filters or scoped to a goal.
  • list_actions — Ranked actions (what the evidence says to do next) filtered by status, assignee, priority or parent insight.
  • get_action_context — Everything needed to execute an action in one call: the action, the parent insight, the customer evidence behind it, and the goals it serves.
  • update_action — Edit an action's priority, effort, category or notes; assign it; or link it to an insight or brief.
  • update_action_status — Move an action through its lifecycle: start, complete, dismiss or snooze.
  • list_goals — Strategic goals ordered by importance.
  • create_goal — Create a strategic goal.
  • update_goal — Update a goal's title, description or importance.
  • update_insight — Curate an insight: set category or status, and link/unlink the goal it supports.
  • dismiss_signal — Permanently remove a signal from the workspace (noise, spam, or mis-ingested content).
  • get_activity — The workspace change feed (humans and Squad agents), newest first.
  • list_documents — Browse workspace knowledge documents (and briefs) with their paths and tags.
  • create_document — Create a knowledge document from markdown (research summaries, meeting notes, analyses).
  • update_document — Replace a document's markdown body and/or title, and manage tags.
  • list_briefs — Briefs with their status (building/draft/in_review/finalised/failed) and recommendation.
  • generate_brief — Kick off AI generation of a brief from an action or insight.
  • update_brief_status — Move a brief through its review lifecycle: draft, in_review, or finalised.
  • ingest_signal — Pipe user feedback into the evidence chain (1–50 items, deduplicated server-side).
  • list_integrations — Connected feedback sources for this workspace and their sync health.

Prompts

Ready-made workflows exposed as MCP prompts:

  • triage-feedback — check for duplicates, ingest a piece of feedback, and report where it landed.
  • weekly-product-review — what changed, what the evidence says, and what needs deciding.
  • draft-decision-brief — generate a brief from an action or insight and walk it to a readable draft.
  • ground-this-ticket — for coding agents: pull the customer evidence behind a piece of work before building it.

Resources

Pin these so strategy questions need no tool calls:

  • squad://workspace/context — the current workspace's mission and product context.
  • squad://goals — the workspace's strategic goals with importance rankings.

Tool Capabilities

  • ✅ Safety annotations (readOnlyHint / destructiveHint) on every tool
  • ✅ Structured Zod input schemas
  • ✅ User- and workspace-isolated data access via OAuth
  • ✅ Scope-gated writes (write:workspace)

🏗️ Architecture

┌─────────────┐         OAuth          ┌──────────────┐
│  Claude /   │ ◄────────────────────► │  PropelAuth  │
│  ChatGPT    │    (Authentication)     │   (IdP)      │
└─────────────┘                         └──────────────┘
       │
       │ HTTPS + Bearer Token
       ▼
┌──────────────────────────────────────────────┐
│  Squad MCP Server                            │
│  ┌────────────────────────────────────────┐  │
│  │  OAuth → introspect + verify token     │  │
│  │  JWT minting → service credentials     │  │
│  │  Redis → workspace selection + tokens  │  │
│  │  MCP handler → tools / prompts / res.  │  │
│  │  PostHog → tool-call telemetry         │  │
│  └────────────────────────────────────────┘  │
└──────────────────────────────────────────────┘
       │
       │ Squad API Calls (minted JWT)
       ▼
┌──────────────┐
│  Squad API   │
└──────────────┘

The server is built on mcp-use v2 and talks to the Squad platform API over GraphQL. Each request is served statelessly: the MCP layer holds no session, and every call re-introspects its own bearer token. Redis stores the durable per-user state (workspace selection and minted-token cache), so any instance can serve any request. Backend types are generated from a committed GraphQL schema snapshot (see GraphQL codegen).

🛠️ Development

This repository contains the source code for the Squad MCP remote server.

Prerequisites

  • Node.js 22+
  • pnpm
  • Nix (optional, for a reproducible dev environment via flake.nix)
  • PropelAuth credentials (OAuth 2.1 client + backend API key)
  • Redis (optional locally; workspace selection falls back to in-memory)

Local Setup

# Clone repository
git clone https://github.com/the-basilisk-ai/squad-mcp.git
cd squad-mcp

# Install dependencies
pnpm install

# Configure environment
cp .env.example .env
# Edit .env with your PropelAuth credentials (and SQUAD_ENV=dev to target the dev platform)

# Start development server with hot reload
pnpm dev

# Server available at http://localhost:3232

Environment Variables

VariableRequiredPurpose
PROPELAUTH_CLIENT_ID / PROPELAUTH_CLIENT_SECRET✅OAuth 2.1 client credentials for token introspection
PROPELAUTH_API_KEY✅Backend integration key for minting service JWTs
SQUAD_ENVdev or production (default production) — selects auth/API/app URLs
PORT / MCP_URL / BASE_URIServer port and externally-advertised base URL
REDIS_URLRedis connection for deploy-safe workspace selection and token cache (in-memory if unset)
SQUAD_GRAPHQL_URLOverride the Squad GraphQL endpoint (also used by codegen)
POSTHOG_API_KEY / POSTHOG_HOSTEnable tool-call telemetry
LOG_LEVELLogger verbosity

Available Commands

pnpm dev                # Start dev server with hot reload (mcp-use)
pnpm build              # Build the server (mcp-use)
pnpm start              # Start the built server
pnpm deploy             # Deploy via mcp-use
pnpm test               # Run unit tests (vitest)
pnpm format             # Lint/format check (biome)
pnpm format:fix         # Auto-fix lint/format issues
pnpm codegen            # Regenerate GraphQL types from schema.graphql
pnpm codegen:check      # Fail if generated GraphQL types are stale

Testing the Server

# Check health
curl http://localhost:3232/health

# Check OAuth discovery
curl http://localhost:3232/.well-known/oauth-protected-resource

# Check server-card discovery (SEP-2127)
curl -H 'Accept: application/mcp-server-card+json' \
  http://localhost:3232/mcp/server-card
curl http://localhost:3232/.well-known/ai-catalog.json

# Test with the built-in inspector
pnpm dev   # then open the inspector and connect to http://localhost:3232/mcp

Project Structure

squad-mcp/
├── server.ts                   # MCP server entry point (OAuth, tool/prompt/resource registration)
├── server.json                 # MCP registry metadata (see MCP_REGISTRY.md)
├── schema.graphql              # Committed snapshot of the Squad platform GraphQL schema
├── codegen.ts                  # GraphQL Code Generator config
├── src/
│   ├── tools/                  # Tool implementations, grouped by surface
│   │   ├── registry.ts         # Single registration path (annotations, errors, telemetry)
│   │   ├── workspace.ts        # list/select workspaces, overview, members
│   │   ├── search.ts           # semantic search
│   │   ├── get-entity.ts       # fetch any entity by display ID / UUID
│   │   ├── evidence.ts         # signals, clusters, insights
│   │   ├── actions-read.ts     # list actions, action context
│   │   ├── actions-write.ts    # update actions + status
│   │   ├── strategy-read.ts    # goals, activity
│   │   ├── strategy-write.ts   # create/update goals, insights, dismiss signals
│   │   ├── knowledge.ts        # documents + briefs
│   │   ├── ingest.ts           # ingest new signals
│   │   └── integrations.ts     # list connected sources
│   ├── prompts/                # MCP prompt workflows
│   ├── resources/              # MCP resources (workspace context, goals)
│   ├── gql/                    # Generated GraphQL types (pnpm codegen)
│   ├── graphql/                # GraphQL operation documents
│   ├── helpers/                # OAuth provider, token minting, workspace selection, KV/Redis
│   └── lib/                    # Squad API client, logger, telemetry, server card
├── railway.toml                # Railway deployment config
└── .env.example                # Environment template

🏭 Production Deployment

This is a hosted service maintained by Squad. Users connect via OAuth — no self-hosting required.

Architecture notes (for contributors):

  • Deployed on Railway with a /health readiness check
  • Stateless request handling, with Redis holding the per-user workspace selection and token cache, so instances scale horizontally
  • Follows the MCP specification for streamable HTTP transport
  • Publishes SEP-2127 discovery documents: a Server Card at https://mcp.meetsquad.ai/mcp/server-card and an AI Catalog at https://mcp.meetsquad.ai/.well-known/ai-catalog.json, both public, cacheable and built from server.json

💬 Support

Need help with the Squad MCP server?

  • Email: support@meetsquad.ai
  • Documentation:
    • Squad MCP Guide — complete setup and integration guide
    • USAGE_EXAMPLES.md — real-world usage examples
  • Issues: GitHub Issues — bug reports and feature requests
  • Privacy Policy: meetsquad.ai/privacy-policy
  • Squad Platform: meetsquad.ai

🤝 Contributing

Contributions welcome! Pre-commit hooks run biome and vitest automatically. Please ensure:

  • pnpm format passes (biome)
  • pnpm build compiles without errors
  • pnpm test passes
  • pnpm codegen:check passes if you touched GraphQL operations
  • All tools include safety annotations

📄 License

MIT

🔗 Links

  • Squad MCP Documentation — complete setup and integration guide
  • Squad Platform
  • MCP Specification
  • Issue Tracker

GraphQL codegen

Backend access is typed via GraphQL Code Generator. schema.graphql is a committed snapshot of the Squad platform API schema; src/gql/ is generated from it plus the operation documents in src/graphql/.

  • Refresh the snapshot: copy packages/graphql/src/schema/generated.graphql from the API repo over schema.graphql (or set SQUAD_GRAPHQL_URL to introspect a live endpoint), then run pnpm codegen.
  • CI runs pnpm codegen:check and fails when src/gql/ is stale.
Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
ego lite browserego lite browser
ego lite browser
Fastest browser for AI agents to run web automation tasks, always free.
Download Free life-time →
Granola, the best AI meeting recorder
Granola, the best AI meeting recorder
Notes, actions and memory. Without a meeting bot. First month 100% off.
Download for free →
CodeHealth MCP ServerCodeHealth MCP Server
CodeHealth MCP Server
Protect your code quality, stop the AI slop.
Try For Free →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Agent, connect blockchain
Agent, connect blockchain
Connect your Claude agent to live crypto prices and trading routes via 1inch
Get the MCP →
Block distraction from your iPhone for freeBlock distraction from your iPhone for free
Block distraction from your iPhone for free
Block distracting apps from your iPhone permanently without a 3rd party app. Free and open source.
Block now (100% free) →
Registryactive
TransportHTTP
UpdatedFeb 12, 2026
View on GitHub