Steam vs Ue MCP

A side-by-side look at the Steam and Ue MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

Steam logoSteamGaming · Local subprocess (stdio)Steam Web API: profiles, owned games, achievements, app news, player counts.60GoodAuth: not declaredUe MCP logoUe MCPGaming · Local subprocess (stdio)Complete Unreal Engine development toolkit exposed as MCP tools.63GoodAuth: no auth required

Verdict: choose Steam for gaming work as a local process; choose Ue MCP for gaming as a local process. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

Steam logoChoose Steam when

  • You need dedicated capabilities in the Gaming domain.
  • You prefer a local stdio subprocess transport.
  • You have the keys it needs: PLATFORM_STEAM_KEY.
  • You want tools like resolve_vanity_url, player_summary, player_summaries.
Explore Steam

Ue MCP logoChoose Ue MCP when

  • You need dedicated capabilities in the Gaming domain.
  • You prefer a local stdio subprocess transport.
  • Its auth model fits you: No auth required.
  • You want tools like tools, flow.
Explore Ue MCP

Feature & specification comparison

Rows where the two servers differ are marked.

SpecSteam logoSteamUe MCP logoUe MCP
CategoryGamingGaming
Quality signal60/100 · Good63/100 · Good
Install commandConfirmedConfirmed
TransportLocal subprocess (stdio)Local subprocess (stdio)
AuthNot declaredNo auth required
PricingNot declaredFree
Required env varsPLATFORM_STEAM_KEYNone listed
Verified ownerCommunity listingCommunity listing
GitHub stars0448
Directory activity 2 views 0 installs 0 upvotes 0 views 0 installs 0 upvotes
Tools142

Tools & capabilities

Steam tools 14

  • resolve_vanity_urlVanity URL → SteamID64.
  • player_summaryFetch public Steam profile for a single SteamID64: persona name, avatar, profile URL, country, last logoff, visibility status.
  • player_summariesFetch public Steam profiles for up to 100 comma-separated SteamID64s in one request; returns persona name, avatar, country, and status for each.
  • friend_listList a Steam user's friend list by SteamID64; optionally filter by relationship type (friend or all). Returns array of SteamID64s and relationship status.
  • owned_gamesList all games owned by a SteamID64; optionally include app name/icon and free-to-play games. Returns appid, playtime_forever (minutes), and per-game metadata.
  • recently_playedList games played by a SteamID64 in the last two weeks, with playtime in the last 2 weeks and total playtime. Optional count caps results.
  • player_achievementsAchievements for a game.
  • player_statsUser stats for a game.
  • player_levelReturn the Steam Community level (integer) for a given SteamID64.
  • player_bansCheck VAC ban, community ban, and economy ban status for one or more comma-separated SteamID64s. Returns CommunityBanned, VACBanned, NumberOfVACBans, DaysSinceLastBan.
  • app_newsApp news feed.
  • app_detailsStore page detail (Steam Store API).
  • +2 more on the listing page

Ue MCP tools 2

  • toolsGateway to every ue-mcp category (micro context mode). Find actions with search, inspect parameters with describe, then invoke with call. Actions: - search: Find actions by keyword or intent; returns category.signature lines. Params: query, limit? (default 20) - list_categories: List every category with a one-line summary. - describe: A category's action signatures a page at a time, or one action's parameter schema. Params: category, method?, offset? - call: Invoke any action. Params: category, method (the action name), args (object of the action's params).
  • flowRun pre-built named sequences for this project. ALWAYS check project(action="get_status") first - its 'flows' field lists what's available. If a flow matches the user's request, run it via flow(action="run", flowName="...") instead of composing the sequence by hand. Config reloads on every call - no restart needed. Actions: - run: Execute a named flow from ue-mcp.yml. Params: flowName, skip? (step names or numbers), params? (runtime options merged into every step's options, highest priority), rollback_on_failure? (invoke inverse tasks in reverse order when a later step fails). A step whose handler reports success:false FAILS the step and stops the run, and the inverses collected up to and including it are what rollback_on_failure unwinds. A step whose failure is EXPECTED says so itself, in the YAML, with ignore_failure: true - the run walks on, and the step is still recorded as failed with its error and its data, marked ignoredFailure. That is how stop, build, start survives an editor that was already stopped, instead of editor(stop_editor) reporting a success it did not achieve. The failing step's OWN inverse, which a few handlers attach after a partial write, is collected like every other: under rollback_on_failure it is replayed FIRST, ahead of the steps before it, so the partial write is undone before they unwind. It arrives verbatim on steps[i].partialWriteRollback, whose replayed flag says whether the runner ran it or it is yours to run, and in that step's error text. A nested flow's steps arrive on steps[i].nestedSteps, reported on the same terms. Returns a summary, every step's data, and the runId. - plan: Show a flow's execution plan without running a step of it. Params: flowName. Returns the ordered plan, and the flow as declared under definition: its description and each step's task or nested flow, options and conditions, with ${steps.N...} references left unresolved. - list: List the flows available to this project, merged from ue-mcp.yml, the user-global config and any loaded plugin. Params: none Step types supported in YAML flows: any MCP action (category.action), nested flows (flow:), and 'shell' for running shell/exec commands. Per-step options: options, when, retries, retryDelay, retryOn, and ignore_failure (record this step's failure and carry on). Example shell step: steps: 1: { task: shell, options: { command: "npm run up:build" } }

Ready-to-paste client configs

Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.

Steam

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "steam": {
      "command": "npx",
      "args": [
        "-y",
        "@pipeworx/mcp-steam"
      ],
      "env": {
        "PLATFORM_STEAM_KEY": "YOUR_PLATFORM_STEAM_KEY_HERE"
      }
    }
  }
}

Ue MCP

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "ue-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "ue-mcp"
      ]
    }
  }
}

Frequently asked questions

Steam is categorized under Gaming and uses a local stdio subprocess. Ue MCP belongs to Gaming and uses a local stdio subprocess. Pick Steam for gaming work and Ue MCP for gaming.

Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.

Steam has no declared pricing — check the project's own site. Ue MCP is listed as free. Auth: no auth required. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add steam and ue-mcp as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, Steam has a quality signal of 60/100 (Good) with 2 views, 0 installs and 0 GitHub stars. Ue MCP has 63/100 (Good) with 0 views, 0 installs and 448 GitHub stars.