Skip to main content
Glama

xbox-mcp

An MCP server that knows what you (or any Xbox player) are playing right now and what you've been up to lately. Backed by the unofficial OpenXBL Xbox Live API.

Tools

Tool

What it does

Other players?

get_current_game

Online state, device, and the game running right now with rich-presence detail

Yes (gamertag/xuid)

get_recent_games

Recently played games, newest first, with last-played date, devices, and per-title achievement/gamerscore progress

Yes

get_activity

Your screenshots, game clips, and achievement posts, newest first

Self only*

get_profile

Gamertag, gamerscore, account tier, reputation, bio, location

Yes

search_players

Find players by gamertag; returns their XUID for follow-up lookups

Yes

Every player-facing tool takes an optional gamertag (or xuid). Omit both to target your own account. Pass a gamertag and the server resolves it to an XUID via /search (cached), then queries that player.

* The OpenXBL activity feed is only exposed for the authenticated account.

Related MCP server: chess.com MCP Server

Configuration

One environment variable:

  • OPENXBL_API_KEY — your OpenXBL API key from https://xbl.io (sign in with your Microsoft/Xbox account, then copy the key from the dashboard).

The key never leaves the server; MCP clients only ever see tool results.

Run locally

npm install
npm run build
OPENXBL_API_KEY=xxxx node dist/index.js   # speaks MCP over stdio

Or for development without a build step:

OPENXBL_API_KEY=xxxx npm run dev

Notes

  • The OpenXBL free tier allows ~150 requests/hour. Each tool call is 1-2 requests (gamertag lookups add one). Bursty history sweeps can hit the limit.

  • Minutes-played and the cross-title recent-achievement feed are not reliably exposed by the API, so they are intentionally omitted. Per-title achievement progress is surfaced through get_recent_games instead.

Available Tools

5 tools
get_activityGet recent Xbox activityA
Read-only

Get your recent Xbox activity feed: screenshots, game clips (Game DVR), and achievement posts, most-recent first, each tied to a game and timestamp. Note: only available for your own account (the OpenXBL activity feed is not exposed for other players).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many activity items to return (default 15).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint. The description adds value by detailing the return order (most-recent first), content types, and account restriction, which are behavioral traits beyond annotations.

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 concise with two front-loaded sentences. Every sentence adds value without redundancy or filler.

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 no output schema and simple parameters, the description adequately covers content types, ordering, and account limitation. It does not detail exact return fields, but for a list tool this is sufficient.

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 for the single parameter 'limit' is 100%, with a clear description in the schema. The tool description does not add further meaning beyond what the schema provides, so 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 a user's recent Xbox activity feed, specifying content types (screenshots, game clips, achievement posts), ordering (most-recent first), and association. It distinguishes from siblings like get_current_game or get_profile by focusing on activity feed, and notes the account limitation.

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 the tool is only available for the user's own account, providing a clear when-not scenario. It does not compare directly to siblings, but the context of activity feed vs. other data makes usage clear.

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

get_current_gameGet currently playing gameA
Read-only

Get what an Xbox player is doing right now: online/offline state, which console or device, and the currently running game with its rich-presence detail. Defaults to your own account; pass a gamertag or xuid for someone else.

ParametersJSON Schema
NameRequiredDescriptionDefault
xuidNoXbox XUID of another player (skips gamertag lookup). Omit to use your own account.
gamertagNoXbox gamertag of another player. Omit to use your own account.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, indicating a safe read operation. The description adds value by specifying exact return data (state, device, rich presence) and default behavior, complementing the annotations without contradiction.

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 pack all necessary information: first sentence defines outputs concisely, second sentence explains default and parameter use. No redundant words.

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

Completeness5/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 no output schema, the description fully covers purpose, usage scenarios, and return contents. The agent can determine when to call it and what to expect without ambiguity.

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 both parameters are well-documented in the schema. The description reinforces that omitting parameters uses your own account, adding marginal clarity beyond the 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?

The description clearly specifies the verb 'Get' and the resource 'what an Xbox player is doing right now,' listing concrete outputs (online/offline state, console/device, currently running game with rich-presence detail). It distinguishes from siblings like get_recent_games (past) and get_profile (profile info) by focusing on current activity.

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 states defaults to own account and provides options for other players via gamertag or xuid, giving clear usage context. It lacks explicit exclusions or when-not-to-use guidance against siblings, but the context is clear enough for an agent to infer.

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

get_profileGet Xbox profileA
Read-only

Get an Xbox player's profile: gamertag, gamerscore, account tier, reputation, bio and location. Defaults to your own account; pass a gamertag or xuid for someone else.

ParametersJSON Schema
NameRequiredDescriptionDefault
xuidNoXbox XUID of another player (skips gamertag lookup). Omit to use your own account.
gamertagNoXbox gamertag of another player. Omit to use your own account.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint and openWorldHint. Description adds value by clarifying default behavior and scope (own vs others), without contradicting annotations.

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, no waste. First sentence explains purpose and output, second sentence explains parameter use. Front-loaded and efficient.

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

Completeness5/5

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

Given simplicity, no output schema, and presence of sibling tools, the description is fully complete: states what is returned, how to use, and default behavior.

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?

Both parameters are fully documented in schema (100% coverage). Description adds meaningful usage context: omission implies own account, which aids correct invocation.

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 resource 'profile', listing specific fields (gamertag, gamerscore, etc.), and distinguishes from sibling tools like get_activity or get_current_game.

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 clear context: defaults to own account, and explains how to use parameters for other players. Lacks explicit exclusions but sufficient for typical use.

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

get_recent_gamesGet recently played gamesA
Read-only

Get an Xbox player's recently played games, most-recent first, with when each was last played, the device(s) used, and achievement/gamerscore progress in each title. This is the 'what have they been up to' history. Defaults to your own account; pass a gamertag or xuid for someone else.

ParametersJSON Schema
NameRequiredDescriptionDefault
xuidNoXbox XUID of another player (skips gamertag lookup). Omit to use your own account.
limitNoHow many recent titles to return (default 15).
gamertagNoXbox gamertag of another player. Omit to use your own account.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint. The description adds that results are sorted most-recent first and include achievement/gamerscore progress and devices, going beyond annotations. No contradictions.

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 no wasted words; front-loaded with purpose and key details. Every sentence adds value.

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 no output schema, the description explains the kind of data returned. It could be more explicit about edge cases (e.g., empty results) and whether the current game is included, but overall sufficiently complete for an agent.

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 covers all 3 parameters with descriptions. The description adds semantic value by explaining the default behavior and how xuid/gamertag relate to account selection, which is not in the schema descriptions.

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 returns recently played games, sorted most-recent first, with details on last played time, devices, and achievement progress. It distinguishes from siblings by specifying 'what have they been up to' history.

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 says it defaults to your own account and you can pass a gamertag or xuid for someone else, implying when to use it for other players. It indirectly differentiates from siblings like get_current_game or get_activity, but lacks explicit exclusions.

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

search_playersSearch Xbox playersA
Read-only

Search for Xbox players by gamertag. Returns matching players with their XUID, gamertag, gamerscore and real name — use this to find the XUID for another player before looking up their profile, current game, or history.

ParametersJSON Schema
NameRequiredDescriptionDefault
gamertagYesGamertag (or partial) to search for.

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and openWorldHint, so the description does not need to cover safety. The description adds return value details, but no further behavioral traits (e.g., partial match behavior, result limit) are mentioned.

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, front-loaded with the action and return, and every sentence adds value. There is no redundant or extraneous information.

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

Completeness5/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 fully explains what it returns and why to use it. It is complete and meets the needs for correct invocation.

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 is clear. The tool description does not add additional meaning 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 it searches for Xbox players by gamertag and returns specific fields (XUID, gamertag, gamerscore, real name). It also explains the use case of finding XUID for subsequent lookups, distinguishing it from sibling tools like get_profile or get_current_game.

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 says to use this tool to find XUID before looking up profile, current game, or history, providing clear context. It does not list when-not-to-use or alternatives, but the purpose is implied through sibling tools.

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.

  1. 5 tool updatesv1.0.0
    • First observedget_activity
    • First observedget_current_game
    • First observedget_profile
    • First observedget_recent_games
    • First observedsearch_players

TDQS

A4.3/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: activity feed, current game, profile, recent games, and player search. No overlap in functionality.

Naming Consistency4/5

Four tools follow 'get_' prefix pattern, but 'search_players' deviates slightly. However, all use verb_noun structure, maintaining readability.

Tool Count5/5

Five tools is well-scoped for an Xbox profile and activity server, covering essential read operations without bloat.

Completeness4/5

Covers profile, activity, current game, recent games, and search. Minor gaps like friends list or achievement details are optional, not critical.

Maintenance

ActivitySlowing
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/312-dev/xbox-mcp'

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