Skip to main content
Glama
ryandrew14

osrs-wikisync-mcp

by ryandrew14

WikiSync/Hiscores MCP for OSRS

A small personal MCP server that exposes data about an Old School RuneScape account to Claude on demand, to eliminate copy/pasting a bunch if you use Claude to draft a plan or aggregate wiki data. TBH I am now required to use Claude at work so I'm working on getting comfortable with it.

  • All of WikiSync - quests, achievement diaries, skill levels, combat achievements, music tracks, league tasks, collection log.

  • Official HiScores - exact level/xp per skill

Obvious shoutout to the OSRS wiki team and all they do. Ideally I will eventually turn this into a public API, maybe even add it to the wiki.

Demo

Related MCP server: Wiki OSRS MCP

Tools

Tool

Description

wikisync(username, section="all", profile="STANDARD")

Sliced WikiSync data. sectionquests | achievement_diaries | combat_achievements | collection_log | music_tracks | levels | league_tasks | all. profileSTANDARD | IRONMAN | HARDCORE_IRONMAN | ULTIMATE_IRONMAN.

player_skills(username)

Exact {rank, level, xp} per skill from the official HiScores — the source of truth for XP.

Notes & caveats

  • You have to have WikiSync enabled for this to work fully

  • collection_log is empty until manually synced — the player must press the WikiSync button in the in-game collection log interface (and re-press to resync). The tool surfaces this as a note rather than a bare [].

  • Quest states are decoded: 0 not started, 1 in progress, 2 finished (confirmed from a live payload).

  • combat_achievements and collection_log return numeric ids (not yet decoded to names); quests and diaries are already named.

Requirements

  • Python 3.10+

  • uv

Setup with Claude Desktop

Claude Desktop launches MCP servers with a stripped-down environment (no shell PATH), so use the absolute path to uv. Find it with which uv.

Edit claude_desktop_config.json (Claude Desktop → Settings → Developer → Edit Config, or ~/Library/Application Support/Claude/ on macOS) and add:

{
  "mcpServers": {
    "osrs-player": {
      "command": "/ABS/PATH/TO/uv",
      "args": [
        "run",
        "--directory", "/ABS/PATH/TO/osrs-wikisync-mcp",
        "osrs-wikisync-mcp"
      ]
    }
  }
}

Then fully quit Claude Desktop and reopen. The server appears under the tools/MCP menu in a chat, and under Settings → Developer. Logs (macos): ~/Library/Logs/Claude/mcp-server-osrs-player.log.

The MCP server stays alive as long as Claude Desktop is open.

Manual setup/run

uv sync
uv run osrs-wikisync-mcp        # stdio (default MCP transport)
# or: uv run python -m osrs_mcp.server

Claude Code can just call a script so honestly no point in using this unless you plan to use Claude Desktop. Eventually I'll deploy this so people can use it on claude.ai and mobile too

# user scope (available in every session); use an absolute path to this repo
claude mcp add --scope user --transport stdio osrs-player \
  -- uv run --directory /ABS/PATH/TO/osrs-wikisync-mcp osrs-wikisync-mcp

claude mcp list   # then /mcp inside a session to see the tools

To iterate on tool I/O and schemas:

uv run fastmcp dev osrs_mcp/server.py

Data sources

  • HiScores API: https://secure.runescape.com/m=hiscore_oldschool/index_lite.ws?player={username}

  • WikiSync API: https://sync.runescape.wiki/runelite/player/{username}/{profile}

Both are called with a descriptive, contactable User-Agent per API etiquette.

Available Tools

2 tools
player_skillsA

Exact level AND xp per skill from the official OSRS HiScores.

Use this whenever exact XP matters — WikiSync stores skill levels only, so this is the source of truth for XP. Returns a mapping of skill name to {rank, level, xp}, including the synthetic "Overall" row.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYesOSRS account name (RSN).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It describes return format (mapping of skill to rank, level, xp, including Overall). Lacks info on error handling or rate limits, but is otherwise transparent for a read-only lookup.

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?

Three concise sentences, front-loaded with key purpose, no unnecessary words or repetition.

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 simple tool with one parameter and implied output schema, description is mostly complete. Could mention what happens on invalid username, but not required for typical use.

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 'username', and description does not add extra context beyond schema. Baseline 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?

Description clearly states the tool returns exact level and XP per skill from official OSRS HiScores, and distinguishes itself from sibling tool WikiSync which only stores levels.

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

Usage Guidelines5/5

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

Explicitly instructs when to use ('whenever exact XP matters') and contrasts with WikiSync, providing clear guidance on alternative.

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

wikisyncA

Read public WikiSync character data for an OSRS account.

WikiSync covers the account's full public progress surface: quests, achievement diaries, skill levels, combat achievements, music tracks, league tasks, and the collection log. It is a snapshot that exists/updates only if the account runs the WikiSync RuneLite plugin and has logged in.

ParametersJSON Schema
NameRequiredDescriptionDefault
profileNoSTANDARD | IRONMAN | HARDCORE_IRONMAN | ULTIMATE_IRONMAN.STANDARD
sectionNoWhich slice to return. One of: quests | achievement_diaries | combat_achievements | collection_log | music_tracks | levels | league_tasks | all.all
usernameYesOSRS account name (RSN).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/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. It correctly identifies the tool as read-only ('Read') and discloses the critical dependency (WikiSync plugin) and data freshness condition (only updates when logged in). It does not mention rate limits or auth, but the provided information is sufficient and accurate.

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, extremely concise. The first sentence states the primary action, the second adds crucial context about scope and dependency. No unnecessary 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?

Given that an output schema exists (so return format is documented) and the tool has only 3 simple parameters, the description adequately covers data source dependency and scope. It distinguishes from the sibling tool and explains the snapshot nature, making it complete for an agent to invoke correctly.

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 parameters are already documented. The description adds context about what WikiSync covers, which helps understand the 'section' parameter possibilities, but does not provide new parameter-specific information 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 'Read public WikiSync character data for an OSRS account', specifying a concrete verb and resource. It lists the exact categories covered (quests, diaries, skills, etc.), making the tool's purpose distinct from the sibling 'player_skills' which likely focuses only on skills.

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 explains that data is a snapshot dependent on the WikiSync RuneLite plugin, giving important usage context. However, it does not explicitly state when to use this tool versus the sibling 'player_skills' or other alternatives, nor does it provide exclusions.

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.

  1. 2 tool updatesv0.1.0
    • First observedplayer_skills
    • First observedwikisync

TDQS

A4.1/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct purposes: player_skills provides exact skill XP from the official HiScores, while wikisync offers a broader snapshot of account progress including quests, diaries, and levels. The overlapping skill levels are differentiated by the presence of XP data in player_skills.

Naming Consistency3/5

Both tools use lowercase and underscores are present only in player_skills; wikisync is a single compound word. There is no consistent verb_noun pattern, and the names are simple nouns that describe the data source rather than actions.

Tool Count3/5

With only two tools, the server feels minimal but appropriate for its narrow scope of OSRS account data. While one tool covers skills with XP and the other covers the rest of the progress surface, there is no redundancy or bloat.

Completeness4/5

The tool set covers the primary data needs for OSRS account progress: exact skill XP via HiScores and a broader summary via WikiSync. However, there is a minor gap in that no tool provides real-time updates or specific quest details independently, but the server is read-only and focused on snapshot data.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables access to RuneScape 3 data including real-time Grand Exchange prices, item information, historical price trends, and player statistics. Supports multiple game modes and provides comprehensive RuneScape Wiki API integration through natural language.
    12
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to interact with RuneScape 3 and OSRS ecosystems through tools for Grand Exchange prices, player stats, and server data.
    8 npm
    Apache 2.0
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to search the OSRS Wiki, lookup Grand Exchange prices, and access synced player data (bank, skills, quests, etc.) via local RuneLite plugin files.
    13
    8 npm
    BSD 2-Clause "Simplified"