An MCP server that exposes the Team Fortress Wiki to LLM clients over stdio.
Project description
tf2-wiki-mcp
An MCP server that exposes the Team Fortress Wiki to LLM clients (Claude Desktop, Claude Code, Cursor, VS Code) over stdio.
Not affiliated with Valve Corporation or the Team Fortress Wiki contributors. Team Fortress 2 is a trademark of Valve Corporation. This is unofficial fan tooling.
What it does
Gives an LLM live, accurate access to TF2 wiki content so it stops guessing at weapon stats, patch notes, and cosmetic details.
- Generic wiki access — search, fetch pages, get summaries, list recent changes.
- TF2 domain tools — structured weapon stats, class loadouts, cosmetic lookup, event item lists, patch notes.
Tools
| Tool | Purpose |
|---|---|
search_wiki(query, limit) |
Full-text search |
get_page(title, format) |
Page content as wikitext, plain, or html |
get_page_summary(title) |
Lead-section plaintext |
get_page_sections(title) |
Section TOC for selective fetching |
get_recent_changes(limit, namespace) |
Recently edited pages |
get_weapon_stats(weapon_name) |
Parsed weapon infobox → structured stats |
list_class_loadout(class_name) |
All weapons in a class's wiki category |
get_cosmetic(name) |
Cosmetic item infobox params |
list_event_items(event_name) |
Items added in an update/event |
get_patch_notes(update_name) |
Patch notes for a specific update |
Plus: resource tf2wiki://main, prompts analyze_loadout and compare_weapons.
Installation
Requires uv (which manages the Python toolchain for you). Once installed, uvx tf2-wiki-mcp will fetch and run the server on demand — no manual clone needed.
Standard config works in most MCP clients:
{
"mcpServers": {
"tf2-wiki-mcp": {
"command": "uvx",
"args": ["tf2-wiki-mcp"],
"env": {}
}
}
}
Claude Desktop
Add the standard config above to claude_desktop_config.json:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Restart Claude Desktop. The TF2 wiki tools appear in the tool picker.
Claude Code
claude mcp add tf2-wiki-mcp -- uvx tf2-wiki-mcp
VS Code
Or via the VS Code CLI:
code --add-mcp '{"name":"tf2-wiki-mcp","command":"uvx","args":["tf2-wiki-mcp"],"env":{}}'
See the VS Code MCP guide for details.
VS Code Insiders
Or via the CLI:
code-insiders --add-mcp '{"name":"tf2-wiki-mcp","command":"uvx","args":["tf2-wiki-mcp"],"env":{}}'
Visual Studio
Or manually:
- Open the GitHub Copilot Chat window.
- Click the tools icon (🛠️) → + Add Server.
- Fill in: Server ID
tf2-wiki-mcp, Typestdio, Commanduvx, Argumentstf2-wiki-mcp. - Save.
See the Visual Studio MCP docs.
GitHub Copilot Coding Agent
{
"mcpServers": {
"tf2-wiki-mcp": {
"command": "uvx",
"args": ["tf2-wiki-mcp"],
"env": {},
"type": "local",
"tools": ["*"]
}
}
}
Add this in repository settings under Copilot → Coding agent. See the Copilot Coding Agent MCP docs.
Development
Run from a local clone instead of PyPI:
git clone https://github.com/yusufaf/tf2-wiki-mcp
cd tf2-wiki-mcp
uv sync --dev
uv run pytest # offline, uses recorded cassettes
uv run pytest --live # also hits the real wiki
To point an MCP client at the local checkout:
{
"mcpServers": {
"tf2-wiki-mcp": {
"command": "uv",
"args": ["run", "--directory", "/absolute/path/to/tf2-wiki-mcp", "tf2-wiki-mcp"]
}
}
}
Licensing & Attribution
Code: MIT (see LICENSE).
Wiki content: Not redistributed. This project contains zero scraped wiki data. All page content is fetched live from wiki.teamfortress.com at the user's request and returned directly to the user's LLM client — the same posture as a browser extension.
Wiki content is © its respective contributors under Valve's Steam Subscriber Agreement (Game Site terms). Users of this tool are responsible for compliance with Valve's terms. Code license ≠ content license: MIT covers this codebase, not the wiki content it fetches.
Requests to the wiki include a descriptive User-Agent (tf2-wiki-mcp/<version> (https://github.com/yusufaf/tf2-wiki-mcp)) per MediaWiki etiquette and respect maxlag/Retry-After responses.
Contributing
Don't check in scraped wiki text. Infobox examples for parser tests are fine (short, fair-use-grade fixtures). Full page dumps are not.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tf2_wiki_mcp-0.1.0.tar.gz.
File metadata
- Download URL: tf2_wiki_mcp-0.1.0.tar.gz
- Upload date:
- Size: 89.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9b27faa92fe0a4261e4098dcd8b303812059a414079c2384fa3cd4441b0ae9e6
|
|
| MD5 |
eca2205693b165c8de43ecedb75fbafe
|
|
| BLAKE2b-256 |
27aeb024a85adb2a0201362d3ebddd1e8cf53e9905e22631d64ed07f5c749e78
|
Provenance
The following attestation bundles were made for tf2_wiki_mcp-0.1.0.tar.gz:
Publisher:
release.yml on yusufaf/tf2-wiki-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tf2_wiki_mcp-0.1.0.tar.gz -
Subject digest:
9b27faa92fe0a4261e4098dcd8b303812059a414079c2384fa3cd4441b0ae9e6 - Sigstore transparency entry: 1383356941
- Sigstore integration time:
-
Permalink:
yusufaf/tf2-wiki-mcp@013662a05ea6dfa2b296872de8e709e6828c2c3a -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/yusufaf
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@013662a05ea6dfa2b296872de8e709e6828c2c3a -
Trigger Event:
push
-
Statement type:
File details
Details for the file tf2_wiki_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: tf2_wiki_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 12.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5c3551d847e272f2316bb07a122c05736c0095fa39826838b717ae3d1e0b06ee
|
|
| MD5 |
7a2f0d7e69bde7ae1c0d41def823d7f8
|
|
| BLAKE2b-256 |
1cc9147f0ebda47a58c2a82a3ae86a4c62d715c7c3f90b48da3b00ddfbf91276
|
Provenance
The following attestation bundles were made for tf2_wiki_mcp-0.1.0-py3-none-any.whl:
Publisher:
release.yml on yusufaf/tf2-wiki-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tf2_wiki_mcp-0.1.0-py3-none-any.whl -
Subject digest:
5c3551d847e272f2316bb07a122c05736c0095fa39826838b717ae3d1e0b06ee - Sigstore transparency entry: 1383356966
- Sigstore integration time:
-
Permalink:
yusufaf/tf2-wiki-mcp@013662a05ea6dfa2b296872de8e709e6828c2c3a -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/yusufaf
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@013662a05ea6dfa2b296872de8e709e6828c2c3a -
Trigger Event:
push
-
Statement type: