Scout MCP Server
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Scout MCP Serverlist my apps"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Scout MCP Server
An MCP (Model Context Protocol) server that wraps the Scout SDK, enabling AI agents to interact with Scout Live platform capabilities through standardized MCP primitives.
What is MCP?
The Model Context Protocol is an open protocol that enables seamless integration between LLM applications and external data sources and tools. It provides:
Resources: Context and data for AI models
Prompts: Templated messages and workflows
Tools: Functions for AI models to execute
Related MCP server: Enterprise MCP Gateway and Tool Registry
Features
This MCP server exposes Scout Live capabilities as:
Tools (Actions)
Tool | Description | Auth Required |
| List user's apps | User |
| Create a new app | User |
| Deploy app version | App (owner) |
| Get app logs | App |
| Get port adapter config | App |
| Set port adapter mapping | App (owner) |
Resources (Data)
Resource | Description | Auth Required |
| List of all apps | User |
| Available adapters | Public |
| App details | App |
Prompts (Workflows)
Prompt | Description |
| Create and deploy a new app |
| Investigate app errors |
Installation
# Clone the repository
git clone https://github.com/scoutos-labs/scout-mcp-server.git
cd scout-mcp-server
# Install dependencies
bun install
# Build
bun run build
# Run with stdio transport (local use)
bun run start
# Run with HTTP transport (server mode)
bun run start:httpConfiguration
Environment Variables
Copy .env.example to .env and configure:
Variable | Description | Required |
| Scout Live API key | Yes |
| API endpoint (default: https://scoutos.live) | No |
| Transport mode: | No (default: stdio) |
| HTTP server port | No (default: 3000) |
For Claude Desktop
Add to your Claude Desktop config:
{
"mcpServers": {
"scout": {
"command": "bun",
"args": ["run", "/path/to/scout-mcp-server/dist/index.js"],
"env": {
"SCOUT_API_KEY": "your-api-key"
}
}
}
}For Claude Code
{
"mcpServers": {
"scout": {
"command": "bun",
"args": ["run", "/path/to/scout-mcp-server/dist/index.js"],
"env": {
"SCOUT_API_KEY": "your-api-key"
}
}
}
}Development
# Run tests
bun run test
# Run tests in watch mode
bun run test:watch
# Run with coverage
bun run test:coverage
# Lint
bun run lintDeployment to scoutos.live
Prerequisites
DigitalOcean Container Registry access
kubectl configured for scout-live cluster
Scout Live namespace exists
Deploy
# Build and deploy
./deploy.sh v0.1.0
# Or manual steps:
# 1. Build
bun run build
# 2. Build Docker image
docker build -t registry.digitalocean.com/scout-live/mcp-server:v0.1.0 .
# 3. Push to registry
docker push registry.digitalocean.com/scout-live/mcp-server:v0.1.0
# 4. Apply Kubernetes manifests
kubectl apply -f k8s/deployment.yaml -n scout-live
kubectl apply -f k8s/ingress.yaml -n scout-live
# 5. Update deployment image
kubectl set image deployment/scout-mcp-server \
mcp-server=registry.digitalocean.com/scout-live/mcp-server:v0.1.0 \
-n scout-liveVerify Deployment
# Check pod status
kubectl get pods -n scout-live -l app=scout-mcp-server
# Check logs
kubectl logs -f deployment/scout-mcp-server -n scout-live
# Health check
curl https://mcp.scoutos.live/healthAccess Endpoints
After deployment, the MCP server is available at:
Endpoint | Description |
| Server capabilities |
| Health check |
| SSE transport endpoint |
Architecture
┌──────────────────────────────────────────────┐
│ MCP Host (Claude, etc.) │
└─────────────────────────┬────────────────────┘
│
▼
┌──────────────────────────────────────────────┐
│ Scout MCP Server (this repo) │
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────────┐ │
│ │ Tools │ │Resources│ │ Prompts │ │
│ └────┬────┘ └────┬────┘ └──────┬──────┘ │
│ │ │ │ │
│ └────────────┼──────────────┘ │
│ │ │
└────────────────────┼─────────────────────────┘
│
▼
┌──────────────────────────────────────────────┐
│ Scout Live API │
│ (scoutos.live) │
└──────────────────────────────────────────────┘API Reference
Tools
app_list
List all apps for the authenticated user.
{
"name": "app_list",
"arguments": {}
}app_create
Create a new app on Scout Live.
{
"name": "app_create",
"arguments": {
"name": "My App",
"slug": "my-app" // optional, auto-generated if not provided
}
}deploy
Deploy a new version of an app.
{
"name": "deploy",
"arguments": {
"slug": "my-app",
"files": {
"index.html": "<html>...</html>",
"style.css": "body { ... }"
}
}
}logs
Get recent logs for an app.
{
"name": "logs",
"arguments": {
"slug": "my-app",
"lines": 100 // optional
}
}Resources
scout://apps
List all apps.
scout://adapters
List available port adapters.
scout://app/{slug}
Get details for a specific app.
Prompts
deploy-new-app
Create and deploy a new app.
{
"name": "deploy-new-app",
"arguments": {
"name": "My App",
"type": "static" // optional: static, hono, express
}
}debug-errors
Investigate errors in app logs.
{
"name": "debug-errors",
"arguments": {
"slug": "my-app"
}
}License
MIT
Available Tools
6 toolsapp_createA
Create a new app on Scout Live
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | App name | |
| slug | No | Unique URL slug (auto-generated if not provided) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for behavioral disclosure. It only states the action 'Create' without mentioning side effects, permissions, reversibility, or any other behavioral traits. This is insufficient for a mutating operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the key action and resource. It contains no unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with full schema coverage, making the description minimally adequate. However, it lacks behavioral details, output/error expectations, and explicit usage guidance, leaving gaps for an agent to fully understand the tool's context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond the schema's parameter descriptions, but the schema already documents both parameters adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and the resource ('a new app on Scout Live'), making the tool's purpose unambiguous. It also distinguishes itself from sibling tools like app_list (listing) and deploy (deployment).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through its verb and resource, but provides no explicit guidance on when to use this tool versus alternatives, nor any exclusions. Sibling names help infer context, but the description itself lacks direct usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
app_listA
List all apps for the authenticated user
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are available, so the description carries the full burden. It conveys a read-only operation via 'list' and scopes to the authenticated user, but lacks details on pagination, ordering, rate limits, or error behavior. This is a minimal but acceptable disclosure for a simple list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It efficiently communicates the action, resource, and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and no output schema, the description is largely complete. It could mention what an 'app' contains or the return format, but for a simple list tool, the provided description is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description adds no parameter-specific details, but none are required given the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'list', names the resource 'apps', and scopes it to 'the authenticated user'. This clearly distinguishes it from siblings like app_create, deploy, logs, and port_get/port_set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context ('authenticated user') and implies when to use the tool (when listing apps). It does not explicitly exclude alternatives, but the sibling tools perform distinctly different actions, making the usage context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deployC
Deploy a new version of an app
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | App slug | |
| files | Yes | Files to deploy (path -> content) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior. 'Deploy a new version' implies a mutation (overwriting or creating a version), but it does not state side effects, whether it is idempotent, or if it triggers a build. This is minimal for a mutating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundant words. It efficiently conveys the core action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool's simplicity is not enough to compensate for missing behavioral context. In the absence of an output schema or annotations, the description does not explain return values, success/failure behavior, or whether deployment is synchronous. This leaves significant gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters described (slug as app identifier, files as path->content mapping). The description adds little beyond the schema, but the 'new version' phrase hints at the files' role without adding specific format details. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb (deploy) and resource (app), clearly indicating a deployment action. It is distinct from sibling tools like app_create (which creates an app) or logs (which retrieves logs), but does not explicitly call out the differences.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor are prerequisites or deployment scenarios mentioned. The description simply states what it does, leaving the agent to infer usage context from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
logsB
Get recent logs for an app
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | App slug | |
| lines | No | Number of lines (default: 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'Get,' implying a read-only operation, but does not disclose output format, ordering, pagination, or any potential side effects. This is minimal disclosure for a tool that interacts with app infrastructure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no redundant words. It is appropriately sized for a simple tool, though it could incorporate a bit more behavioral context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (2 params, no output schema, no annotations), the description provides the core purpose but leaves out behavioral details such as what the logs look like or any limitations. It is adequate for an agent to understand the tool's basic function, but it does not fully cover all context an agent might need (e.g., ordering, format).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters (slug and lines) described in the schema. The description adds no extra meaning beyond 'recent logs,' but the schema already documents the parameters adequately, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the resource ('recent logs for an app'). Among sibling tools like app_list, deploy, and port_get, logs is uniquely identified as the log retrieval tool, so it distinguishes itself from all siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: call this tool when you need an app's recent logs. It provides no explicit alternatives or exclusions, but no sibling tool offers log retrieval, so the intended use is clear. No prerequisites or when-not-to-use guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
port_getC
Get port adapter configuration
| Name | Required | Description | Default |
|---|---|---|---|
| port | Yes | Port name (data, cache, blob, queue) | |
| slug | Yes | App slug |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. While 'Get' implies a non-mutating operation, the description does not mention permissions, error behavior, response format, or any side effects, offering minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, using a short, front-loaded phrase with no redundant language. It is efficient, though the brevity comes at the cost of missing important context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description is too sparse. It does not indicate what the returned configuration looks like, what errors may occur, or any special behaviors, making it incomplete for an agent to rely on.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage with clear descriptions for both parameters (slug and port). The description adds no additional meaning about how these parameters affect the configuration retrieval, so the schema carries the full burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('port adapter configuration'), clearly indicating a read operation. It distinguishes from the sibling port_set by implying a getter/setter pair, though it does not explicitly name the alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool vs alternatives such as port_set. There are no conditions, prerequisites, or exclusions, leaving the agent to infer usage from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
port_setC
Set port adapter mapping
| Name | Required | Description | Default |
|---|---|---|---|
| port | Yes | Port name (data, cache, blob, queue) | |
| slug | Yes | App slug | |
| config | No | Adapter configuration | |
| adapter | Yes | Adapter type (mongodb, valkey, spaces, kafka) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states 'Set port adapter mapping' without revealing side effects, whether existing mappings are overwritten, reversibility, required permissions, or the response format. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence with zero fluff, which is concise. However, it is under-specified for a tool with four parameters and a nested config object. It lacks structural elements like context or examples, so it barely earns a passing score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given four parameters, no output schema, and no annotations, the description is far from complete. It does not explain return values, prerequisites, or the operational effect of setting a mapping. The schema provides parameter listings but not the behavioral or contextual glue needed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters with brief descriptions and examples. The tool description adds no additional parameter meaning beyond what the schema provides. Baseline 3 applies because the schema handles the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource structure: 'Set port adapter mapping' clearly indicates a write operation targeting port-adapter associations. It distinguishes from sibling 'port_get' by the contrasting 'set' vs 'get' action, and the resource 'port adapter mapping' is more specific than just 'port'. However, it lacks detail on what a 'port adapter mapping' is or what setting it accomplishes, leaving some ambiguity for an agent unfamiliar with the domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool, prerequisites, or alternatives. The sibling port_get implies a read counterpart, but the description does not mention that relationship or any exclusions. The context is only implied by the tool name and schema, not explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
6 tool updates
v0.1.0- First observed
app_create - First observed
app_list - First observed
deploy - First observed
logs - First observed
port_get - First observed
port_set
TDQS
Each tool targets a distinct action: listing apps, creating apps, deploying, fetching logs, and getting/setting port configuration. There is no overlap or ambiguity between these operations.
Naming is mixed: some tools follow noun_verb (app_list, app_create, port_get, port_set), while others are bare verbs or nouns (deploy, logs). This is readable but lacks a consistent pattern.
With 6 tools, the server is well-scoped for app and deployment management. Each tool covers a core function and the count is appropriate for the stated purpose.
The surface covers app creation, listing, deployment, log retrieval, and port config. Minor gaps include no explicit app deletion, app details retrieval, or deployment status checks, but core workflows are reasonably covered.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Your org's AI agents, tasks, runs, search, and brain files as MCP tools and resources.
Discover and call AI agents via MCP. Supports A2A agents and platform agents with async tasks.
Pay-per-use tool marketplace for AI agents. Search, price-check, and call APIs via MCP.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables file system operations, web scraping, and AI-powered search through MCP tools for use by LLM agents.1-
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to discover and execute tools via a secure MCP server with JWT authentication, RBAC, rate limiting, and audit logging.1MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to access a unified catalog of tools from various APIs (OpenAPI, GraphQL, MCP, Google Discovery) through the MCP protocol.MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to read and modify Mendix application models through MCP tools for creating modules, entities, pages, microflows, deploying, and querying runtime data.1-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/scoutos-labs/scout-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server