Skip to main content
Glama
phiresky
by phiresky

factorio-mcp

MCP server for controlling and inspecting a Factorio 2.0 server over RCON.

It exposes tools for common server administration and game-state queries, plus escape hatches for raw console commands and Lua snippets.

Requirements

  • Node.js 23+ with native TypeScript stripping support

  • A running Factorio server with RCON enabled

  • An MCP client that can launch stdio servers

Related MCP server: Minecraft MCP Server

Factorio RCON Setup

For a local Factorio game, enable RCON from the hidden advanced options:

  1. Hold Ctrl + Alt while clicking Settings.

  2. Click the newly visible The rest button.

  3. Enable the local RCON socket.

  4. Set an RCON password.

  5. Use the same password as FACTORIO_RCON_PASSWORD when starting this MCP server.

For a dedicated server, start Factorio with RCON enabled, or set the equivalent values in your server config:

factorio --start-server save.zip \
  --rcon-port 27015 \
  --rcon-password "change-me"

Keep the RCON port private. This server can execute admin commands and arbitrary Lua through Factorio's /silent-command.

Install

npm install
npm run typecheck

Run

FACTORIO_RCON_HOST=localhost \
FACTORIO_RCON_PORT=27015 \
FACTORIO_RCON_PASSWORD=change-me \
npm start

Environment variables:

Name

Default

Description

FACTORIO_RCON_HOST

localhost

Factorio RCON host

FACTORIO_RCON_PORT

27015

Factorio RCON port

FACTORIO_RCON_PASSWORD

empty

Factorio RCON password

MCP Client Config

Example stdio configuration:

{
  "mcpServers": {
    "factorio": {
      "command": "node",
      "args": ["/path/to/factorio-mcp/src/index.ts"],
      "env": {
        "FACTORIO_RCON_HOST": "localhost",
        "FACTORIO_RCON_PORT": "27015",
        "FACTORIO_RCON_PASSWORD": "change-me"
      }
    }
  }
}

If you install it as a package or link it locally, you can use the factorio-mcp bin instead of calling node src/index.ts directly.

Tools

Command tools:

  • rcon_command: execute a raw Factorio console command.

  • lua_exec: execute Lua through /silent-command; return values are printed and tables are serialized with serpent.line.

  • send_chat: send a chat message as [MCP].

  • save_game: save the current game, optionally with a save name.

Player tools:

  • get_players: list connected players.

  • get_player_info: inspect a player's position, inventory, health, and crafting state.

  • player_action: kick, ban, unban, mute, unmute, promote, or demote a player.

Game-state tools:

  • get_game_status: tick, age, player count, evolution, research, and speed.

  • get_research_status: current research, progress, queue, and completed technologies.

  • get_production_stats: item or fluid production and consumption stats.

  • get_surface_info: surface details, pollution, and entity counts.

  • find_entities: search entities by name, type, area, or radius.

  • get_logistics_info: logistic network robot and storage information.

  • get_planets: list Space Age planets.

  • get_space_platforms: list Space Age platforms.

  • get_alerts: active alerts for a force.

  • get_electric_network: electric network production, consumption, and satisfaction.

  • get_train_info: train state, schedules, and cargo.

  • get_player_surroundings: nearby entities, resources, enemies, GUI state, cursor stack, vehicle, and walking state.

Resources

  • factorio://server-status: connection status and basic game information.

Development

npm run typecheck

There is no build step at the moment; the server runs directly from src/index.ts.

Available Tools

19 tools
find_entitiesA

Search for entities on a surface. Can search by name, type, or area. Returns position, name, health, and other info for each match.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoEntity name filter (e.g. 'assembling-machine-3')
typeNoEntity type filter (e.g. 'assembling-machine', 'furnace', 'inserter')
limitNoMax results to return (default: 50)
radiusNoSearch radius around position (default: 50)
surfaceNoSurface name (default: 'nauvis')
positionNoCenter position for area search

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Mentions return info but does not disclose any behavioral traits (e.g., read-only, rate limits, side effects). Brief and lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with action, no redundant information. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 6 parameters and no output schema, description explains search modes and basic return fields but omits details on combining criteria, defaults, or scope. Adequate but incomplete for a search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so description adds little beyond listing search criteria. Baseline 3 is appropriate as the description does not significantly enhance schema meanings.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb 'Search', resource 'entities on a surface', and search criteria (name, type, area). Distinguishes from sibling tools which are mostly specific getters.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage for generic entity search but lacks explicit when-to-use or when-not-to-use guidance. Does not mention alternatives among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_alertsB

Get active alerts for a force (entity destroyed, turret fire, no storage, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoForce name (default: 'player')
surfaceNoSurface name to filter alerts (optional)

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must fully disclose behavior. It mentions 'active alerts' but does not explain whether alerts are one-time or continuous, if pagination exists, authentication needs, or any side effects. A simple read operation is assumed but not stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One concise sentence with no wasted words. However, could be slightly more structured by separately stating purpose and examples.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but description does not clarify return format. For a simple list tool, this is acceptable but not comprehensive. Behavioral gaps lower the score from a potential 4.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters. Description adds no extra information beyond schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool retrieves active alerts for a force, providing examples of alert types (entity destroyed, turret fire, etc.). It is specific and distinguishes from sibling tools like get_game_status or get_player_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage when needing alerts for a force, but no explicit guidance on when to use or not use this tool versus alternatives. No prerequisites or exclusions mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_electric_networkA

Get electric network statistics: power production, consumption, battery charge, satisfaction.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoForce name (default: 'player')
surfaceNoSurface name (default: 'nauvis')
positionNoPosition of an electric pole in the network to query (default: searches near 0,0)

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full burden. It states 'Get' which implies read-only behavior, but does not explicitly mention that no modifications occur or disclose any permissions needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with key information front-loaded. However, it could be slightly more detailed without losing efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lists the return values (power production, consumption, etc.), which is helpful given no output schema. It lacks information about edge cases or behavior, but is fairly complete for a simple query tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter already documented in the schema. The tool description does not add additional meaning or context beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'electric network statistics', listing specific items like power production, consumption, battery charge, and satisfaction. It distinguishes itself from sibling tools like get_production_stats and get_game_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving electric network stats but provides no explicit guidance on when to use this tool vs alternatives, nor any prerequisites or limitations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_game_statusA

Get high-level game state: tick count, map age, player count, evolution factor, current research, game speed.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral burden. It implies a read-only operation by saying 'Get high-level game state', but does not explicitly state safety, side effects, or authorization requirements. This is adequate but not fully transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that immediately states the action and lists the returned data. No wasted words, and it is front-loaded with the key purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description lists fields but does not explain types, formats, or how to interpret the data. For a tool with no parameters, more detail about the return structure would improve completeness. It is adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the description cannot add meaning beyond the schema. The baseline for zero parameters is 4, and the description meets this by not requiring further parameter clarification.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: retrieving high-level game state. It lists specific data fields (tick count, map age, etc.), making the resource and scope unambiguous. The sibling tools cover different aspects, so this tool is well-distinguished.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. Given the sibling list, the context is implied, but explicit 'when to use' or 'when not to use' instructions are missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_logistics_infoB

Get logistics network information: robot counts, items in logistic storage, pending requests.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoForce name (default: 'player')
surfaceNoSurface name (default: 'nauvis')
positionNoPosition to find the nearest logistic network (default: {0,0})

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description only lists data returned without disclosing behavioral traits such as read-only nature, error conditions (e.g., when no network exists), or performance implications. Minimal additional context beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single concise sentence that effectively communicates the tool's purpose. No unnecessary words, but lacks structured bullet points for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Description gives a high-level overview but does not specify output format or structure; with no output schema, the agent may be uncertain about the response shape. Could be more complete given the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all three parameters; the tool description adds no extra meaning beyond what is in the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Get' and specific resource 'logistics network information' with concrete details like robot counts, items, and pending requests, distinguishing it from sibling tools like get_electric_network.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives; no prerequisites or exclusions mentioned. The description does not help the agent choose between this and similar get_* tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_planetsB

List all planets in the game (Space Age). Shows name, surface properties, and connections.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description implies a read-only operation but does not disclose any behavioral traits such as rate limits, caching, or data freshness.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences convey purpose and output succinctly with no extraneous words. Information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and no output schema, the description provides adequate context (lists planets with name, surface, connections). Could mention if planets are returned in any order or if there is pagination.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so baseline score of 4 applies. Description correctly indicates no input needed, but adds no additional parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all planets and mentions specific details (surface properties, connections). It distinguishes from generic listers but does not differentiate from siblings like get_surface_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., get_surface_info for a single planet). The description is purely descriptive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_player_infoA

Get detailed information about a specific player: position, inventory summary, character stats, crafting queue.

ParametersJSON Schema
NameRequiredDescriptionDefault
playerYesPlayer name

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully convey behavioral traits. It lists what information is returned (position, inventory, stats, crafting queue) but does not disclose read-only nature, potential side effects, authentication needs, or rate limits. For a simple getter, this is adequate but not fully transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads the purpose and lists key categories. Every word contributes value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description must inform expected return values. It lists four major categories (position, inventory, stats, crafting queue), which is fairly complete for a player info tool. Minor omission: does not mention if additional details like health or energy are included, but 'detailed information' covers this adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter 'player' with description 'Player name'. The description adds that it is for a 'specific player' but does not provide additional semantic details beyond the schema. Baseline 3 is appropriate as schema already handles the parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves 'detailed information about a specific player' and lists specific categories (position, inventory, stats, crafting queue). This is a specific verb+resource combination that effectively distinguishes it from sibling tools like 'get_players' (list all) and 'get_player_surroundings' (environment).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The description implies usage for a single player's details, and the presence of sibling tools like 'get_players' allows inference, but no clear when-not or alternative naming provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_playersB

List all online players with basic info (position, surface, force).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It does not disclose whether authentication is needed, if there are rate limits, or if the list is paginated. Only states it lists 'online players', but no details on behavior beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, clear and front-loaded with the essential information. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with no parameters, the description is minimally adequate. However, it lacks details on return format, pagination, or authentication requirements, which would be helpful given the number of sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so schema coverage is 100%. The description adds no param info but none is needed. Baseline for 0 params is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists online players with specific fields (position, surface, force). It distinguishes from sibling tool 'get_player_info' which is singular, but does not explicitly differentiate from 'find_entities' which might also find players.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'get_player_info' or 'find_entities'. No mention of when not to use it or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_player_surroundingsA

See what's around a player — nearby entities grouped by type, what they're looking at, open GUI, walking state, and the terrain/resources in the area. Use this to understand what the player is currently doing.

ParametersJSON Schema
NameRequiredDescriptionDefault
playerNoPlayer name (default: first connected player)
radiusNoScan radius around the player (default: 30)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden and adequately discloses behavioral traits: it groups entities by type, includes looking direction, GUI, walking state, and terrain/resources. It implies a read-only operation, though it doesn't specify if it's a snapshot or streaming, or if there are performance considerations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero waste. First sentence lists the output components, second sentence states the use case. Front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains the return structure sufficiently for a tool with no output schema, listing major components. It is complete for understanding the player's environment, though it might not cover edge cases like empty surroundings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description does not add additional meaning beyond the schema for the two parameters; it mentions 'nearby entities' but the schema already describes the radius. No extra value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the verb 'see' and the resource 'player surroundings', listing specific elements like nearby entities grouped by type, looking direction, GUI, walking state, and terrain/resources. This distinguishes it from siblings like get_player_info (general info) and get_players (list of players).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states 'Use this to understand what the player is currently doing', providing clear context for use. However, it does not mention when not to use this tool or name alternative tools for other scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_production_statsB

Get item/fluid production and consumption statistics for a force on a surface. In Factorio 2.0, stats are per-surface.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemNoSpecific item to query (omit for top producers)
typeNoWhether to query items or fluids (default: 'item')
forceNoForce name (default: 'player')
surfaceNoSurface name (default: 'nauvis')

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must fully disclose behavioral traits. It adds one behavioral detail (stats are per-surface in 2.0) but fails to mention if data is cumulative, real-time, or historical, nor any performance implications or permissions needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no wasted words. First sentence states purpose, second adds key behavioral context. Perfectly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 4 parameters and no output schema, so the description should explain what the return value looks like (e.g., list of stats, numbers, format). It does not. The version detail is helpful but insufficient for complete understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 4 parameters well. The description adds no additional meaning beyond stating the version-specific surface behavior, which is not parameter-specific. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'item/fluid production and consumption statistics', specifying the scope (force on a surface) and a version-specific detail. It distinguishes from sibling tools like get_electric_network or get_logistics_info by focusing on production/consumption metrics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for querying production/consumption stats but does not provide when-to-use or when-not-to-use guidance relative to alternatives. No explicit context or exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_research_statusB

Get research status for a force: current research, progress, research queue, and recently completed technologies.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoForce name (default: 'player')

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden but fails to explicitly state that the operation is read-only or has no side effects. It does not mention error handling, authentication needs, or performance characteristics beyond stating what data is returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence with no wasted words. It clearly conveys the tool's purpose and output in a concise manner.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description covers the key output fields but lacks details on handling invalid or missing force names, error scenarios, or format of returned data. Adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already describes the 'force' parameter with default. The tool description adds no additional meaning or context beyond what the schema provides, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves research status for a force and lists the specific data returned (current research, progress, queue, completed technologies). It distinguishes itself from sibling tools that cover game state, logistics, or player info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like get_game_status or get_player_info. The description implies usage is for checking research progress, but does not provide explicit context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_space_platformsA

List all space platforms (Space Age). Shows platform name, state, location, and hub info.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoForce name (default: 'player')

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the output fields but omits the filtering behavior of the 'force' parameter. Since the description says 'List all space platforms' while the parameter defaults to 'player', it could imply a global list when in reality it filters. With no annotations, this omission is a moderate gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with no extraneous words. It front-loads the primary action and key output, fitting the minimalist structure expected for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with only one optional parameter and no output schema, the description reasonably conveys the return shape. However, 'hub info' is somewhat vague, and the filtering aspect is missing, preventing a perfect score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the parameter description in the schema already explains 'force name' and default. The description adds no additional meaning beyond what the schema provides, meeting the baseline but not exceeding it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all space platforms and enumerates the displayed fields (name, state, location, hub info). It is distinct from sibling tools like get_planets which lists planets, avoiding confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives like get_planets or get_surface_info. The description does not mention any prerequisites or complementary tools, leaving the agent to infer usage from context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_surface_infoB

Get information about a game surface (planet): name, map settings, daytime, pollution stats, entity counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
surfaceNoSurface name (default: 'nauvis')

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It lists the type of information returned but does not disclose any side effects, permissions, rate limits, or other behavioral traits like whether it is a read-only operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the action and resource, and contains no unnecessary words. Every part is informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with one optional parameter and no output schema, the description lists the main categories of returned data. It is fairly complete, though missing an explicit statement that it is a read-only operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes the single parameter 'surface' with default value 'nauvis'. The tool description adds no additional meaning beyond the schema, resulting in a baseline score of 3 for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves information about a game surface, listing specific data types (name, map settings, daytime, pollution stats, entity counts). However, it does not explicitly distinguish from sibling tools like 'get_planets', which may also involve surface information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 versus alternatives (e.g., get_planets for listing surfaces). No usage context or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_train_infoC

Get information about trains: list trains, their schedules, states, and cargo.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoForce name (default: 'player')
limitNoMax trains to return (default: 20)
surfaceNoSurface name (default: 'nauvis')

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must disclose behavioral traits. It implies read-only via 'get' but does not explicitly state that it is safe, non-destructive, or any potential side effects. Minimal transparency for an unannotated tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with a colon-delimited list is efficient and front-loaded. Every word contributes, though the list format could be more structured. No wasted language.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description mentions what information is returned (schedules, states, cargo) but does not explain how parameters like force, surface, and limit affect results. Since all params are optional with defaults, the agent may not understand filtering capabilities. Adequate but not thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, each parameter has a description. The description adds no additional meaning beyond the schema, but baseline is 3 since the schema already documents force, limit, surface adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'get' and resource 'trains', and specifies the aspects covered: schedules, states, cargo. It effectively distinguishes from siblings like 'get_logistics_info' by focusing on trains specifically, though not explicitly naming alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'get_logistics_info' or 'get_game_status'. With 18 sibling tools, the agent receives no context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lua_execA

Execute Lua code on the Factorio server via /silent-command. The code is wrapped in a function — use 'return' to send results back. Results are serialized via serpent.line for tables. Use this for any game state query not covered by specific tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesLua code to execute. Use 'return expr' to get a value back. Tables are auto-serialized.

TDQS

A4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description bears full burden. Discloses code wrapping and serialization but fails to state whether tool is read-only or can modify game state. This is a critical omission for an execution tool that could be destructive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two succinct sentences with no redundancy. Front-loaded with action and target.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Provides purpose, usage, result handling, and when-to-use. Lacks error handling or security notes, but for a single-param tool with clear schema, this is sufficient. No output schema, so return format covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and description adds useful semantics: 'Use 'return expr' to get a value back. Tables are auto-serialized.' Enhances understanding beyond schema's code description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool executes Lua code via /silent-command and distinguishes it from sibling tools by noting it's for queries not covered by specific tools. The verb 'Execute' and resource 'Lua code on the Factorio server' are specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit context: 'Use this for any game state query not covered by specific tools.' Gives usage instructions on wrapping code, using 'return', and serialization. Lacks explicit when-not-to-use or alternative references beyond sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

player_actionC

Perform an admin action on a player: kick, ban, unban, mute, unmute, promote, or demote.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesThe action to take
playerYesPlayer name
reasonNoReason (for kick/ban)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It only says 'Perform an admin action' but does not disclose behavioral traits like permission requirements, irreversibility of actions (ban/kick), side effects, or success/failure responses.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with 13 words, containing the essential purpose and list of actions. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of annotations and output schema, the description is insufficient. It does not address error conditions, permissions, return format, or the specific usage of the reason parameter (e.g., only for kick/ban).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description lists the enum values but adds no extra meaning beyond what the schema already provides. It does not explain each action's effect or the optional reason parameter's context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Perform') and identifies the resource ('admin action on a player'). It lists the possible actions, which clarifies the scope. However, it does not differentiate from sibling tools like lua_exec or rcon_command.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 versus alternatives. There is no mention of prerequisites, when-not-to-use, or comparison to sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rcon_commandA

Execute a raw console command on the Factorio server via RCON. Use this as an escape hatch for commands not covered by other tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYesThe console command to execute (e.g. '/players', '/time', '/evolution')

TDQS

A3.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must carry the full burden. It mentions RCON but lacks details about authentication, error handling, side effects (e.g., destructive commands), rate limits, or output format. This is insufficient for a raw command tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero wasted words, front-loaded with the action. Efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one parameter, no output schema, and no annotations, the description provides purpose and usage guidance but omits output behavior, error cases, and safety warnings. It's functionally complete for a simple tool but lacks rich context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description adds value with concrete examples (e.g., '/players', '/time', '/evolution') that go beyond the schema's generic description, helping the agent know valid inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the action ('Execute a raw console command'), the resource ('Factorio server via RCON'), and frames it as an escape hatch for commands not covered by other tools, clearly distinguishing it from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says 'Use this as an escape hatch for commands not covered by other tools,' providing clear guidance on when to use it (fallback) and implying when not (if a dedicated tool exists). The sibling tool list reinforces this, though explicit exclusions are absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_gameB

Save the current game. Optionally specify a save name.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoSave file name (optional)

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It only says 'Save' which implies mutation, but lacks details like overwrite behavior, confirmation, or side effects. Minimal behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no unnecessary words. Efficiently communicates the core purpose and optional parameter, though it could be more structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema, the description is minimally adequate. However, given no annotations, more context about success/failure or state changes would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the description adds little beyond what the schema already provides for the 'name' parameter. Baseline score applies as schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Save the current game' with a clear verb and resource, and mentions the optional parameter. It is distinct from sibling tools which are all queries or other actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use vs. alternatives, but the tool's purpose is obvious. Implied usage for saving game state, no exclusions or prerequisites mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_chatA

Send a chat message visible to all players on the server.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesThe message to send

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility. It fails to disclose potential side effects, required permissions, rate limits, message length restrictions, or behavior on failure. As a simple tool, it barely meets minimum expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that conveys the core purpose without any extraneous text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (single parameter, no output schema, no nested objects), the description is largely complete. However, it could mention message formatting or content restrictions. Still, it provides sufficient context for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with the 'message' parameter described as 'The message to send'. The description adds no additional semantics beyond what the schema provides, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Send' and the resource 'chat message', and specifies the scope 'visible to all players on the server'. It distinguishes itself from sibling tools like player_action or lua_exec which have different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for sending broadcast messages but provides no explicit guidance on when to use this tool versus alternatives, nor any conditions or prerequisites. It is adequate but lacking depth.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.7/5.0
Disambiguation5/5

Each tool targets a distinct aspect of the Factorio server: players, entities, surfaces, logistics, etc. Overlaps are minimal and clarified by descriptions, e.g., get_game_status vs get_research_status serve different detail levels.

Naming Consistency4/5

Most tools follow a 'get_' prefix for queries, but there are deviations like 'find_entities', 'lua_exec', 'player_action', and 'save_game'. The naming is readable and mostly consistent, though not perfectly uniform.

Tool Count5/5

With 19 tools covering player info, world state, actions, and escape hatches, the count is well-scoped for a complex game server. Each tool serves a clear purpose without redundancy.

Completeness5/5

The tool set covers key game aspects (players, entities, logistics, production, research, trains, surfaces) and includes escape hatches (lua_exec, rcon_command) for any uncovered queries. Missing features like blueprint management are not core to the server's purpose.

Maintenance

ActivityStale
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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/phiresky/factorio-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server