Skip to main content
Glama
birdwell

RuneScape Wiki MCP Server

by birdwell

RuneScape Wiki MCP Server

A Model Context Protocol (MCP) server for RuneScape 3 Grand Exchange prices, item name lookup, player hiscores, and wiki page extracts.

Speaks MCP 2026-07-28 (stateless) via serveStdio, with legacy 2025-era clients still supported.

Prerequisites

  • Node.js 20+

  • npm

Related MCP server: osrs-wikisync-mcp

Install / Build / Run

npm install
npm run build
npm start          # stdio MCP server
npm test           # unit + protocol compliance
npm run inspector  # MCP Inspector

Claude Desktop

{
  "mcpServers": {
    "runescape-wiki": {
      "command": "node",
      "args": ["/path/to/runescape-wiki-mcp/dist/index.js"]
    }
  }
}

Tools

Tool

Purpose

lookup_item

Name → ID + latest price (Weirdgloop + wiki opensearch). Start here when you only know the name.

get_item_price

GE detail + trends by itemId or name

get_item_graph

180-day price graph by itemId or name

summarize_price_history

Compact 7–90 day trend summary (min/max/avg/change/volume)

compare_items

Bulk compare up to 10 items by names or itemIds

estimate_flip

Flip profit estimate after RS3 2% GE sales tax

browse_items

Catalogue browse by category + starting letter (not a name search)

get_all_categories

Category ID → name map (0–43)

get_category_info

Letter counts for one category

get_ge_info

GE database metadata (lastConfigUpdateRuneday)

get_player_stats

RS3 hiscores by username (gameMode: normal works; ironman/hardcore currently 404 from Jagex)

get_wiki_page_content

Plain-text wiki extract (follows redirects)

Prompts (workflow templates)

Prompt

Args

check_item_price

itemName

compare_ge_items

items (comma-separated)

estimate_item_flip

itemName, optional quantity

player_overview

username

Typical agent flow

lookup_item { query: "abyssal whip" }
  → id 4151, price …
get_item_price { itemId: 4151 }   # or { name: "Abyssal whip" }
get_item_graph { itemId: 4151 }

Resources

URI

Contents

runescape://ge/info

GE database info (not prices)

runescape://ge/categories

Canonical category list

Data sources

  • Jagex GE: https://secure.runescape.com/m=itemdb_rs/api

  • Jagex hiscores lite: https://secure.runescape.com/m=hiscore/index_lite.ws

  • Weirdgloop RS exchange: https://api.weirdgloop.org/exchange/history/rs

  • RuneScape Wiki MediaWiki API: https://runescape.wiki/api.php

All requests send User-Agent:
RuneScape Wiki MCP Server - github.com/joshbirdwell/runescape-wiki-mcp

Project layout

src/
├── index.ts          # stdio entry (serveStdio)
├── smithery.ts       # Smithery HTTP factory
├── server.ts         # createServer() + handlers
├── itemResolve.ts    # name → ID resolution
├── categories.ts     # GE category table
├── tools/            # MCP tools
└── resources.ts      # MCP resources

Notes

  • RS3 only, not OSRS (different IDs and endpoints).

  • Ironman/hardcore index_lite endpoints are documented by Jagex but currently return HTTP 404; the tool reports that instead of silently returning normal-mode data.

  • Smithery hosts should rebuild the server card after tool changes so the published schema matches this README.

License

MIT — unofficial; not affiliated with Jagex or the RuneScape Wiki.

Available Tools

12 tools
browse_itemsBrowse Catalogue ItemsA
Read-only

Browse the Grand Exchange catalogue by category and starting letter. This is NOT a name search — use lookup_item for that. Use # for numeric names.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (starting from 1)
alphaNoStarting letter (a-z) or # for numbers. Defaults to "a".
categoryYesCategory ID (0-43)

TDQS

A4.7/5.0
Behavior4/5

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

With readOnlyHint=true annotation, the safety profile is already clear. The description adds behavioral context beyond annotations: it clarifies that this tool is for browsing (not searching) and specifies the alpha parameter's special '#' behavior for numeric names. This adds meaningful behavioral nuance.

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 three short sentences, front-loaded with the main action, and every sentence earns its place: first states what it does, second explicitly contrasts with an alternative, third gives a usage rule. No fluff or redundancy.

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 the tool's moderate complexity (3 parameters, simple browse operation) and the presence of a full input schema, the description covers the essential context: what it does, when to use it, and a critical parameter special case. No output schema is present, but return values are implicitly a list of catalogue items, which is sufficient.

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%, so baseline is 3. The description adds meaning beyond schema by explaining that '#' can be used for numeric names in the alpha parameter, which is a valuable semantic detail not present in the schema itself. This lifts it above baseline.

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 uses a specific verb 'Browse' with a clear resource ('Grand Exchange catalogue') and scope ('by category and starting letter'). It explicitly distinguishes itself from sibling tool lookup_item, making it unambiguous which tool to select.

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?

The description gives explicit guidance on when to use this tool versus alternatives: 'This is NOT a name search — use lookup_item for that.' It also provides the special rule for numeric names ('Use #'), giving clear context for correct invocation.

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

compare_itemsCompare ItemsA
Read-only

Compare latest Grand Exchange prices for up to 10 items in one call. Provide either names or itemIds. Returns one row per entry with id, name, price, volume and timestamp; entries that cannot be resolved come back as error rows instead of failing the call.

ParametersJSON Schema
NameRequiredDescriptionDefault
namesNoItem names to compare (1-10). Provide names or itemIds, not both.
itemIdsNoGrand Exchange item IDs to compare (1-10). Provide names or itemIds, not both.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description adds valuable behavioral context: it returns one row per entry, and unresolved entries come back as error rows instead of failing the call. This goes beyond the annotation by explaining error handling and output structure.

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-load the purpose and cover usage, output format, and error behavior without redundancy. Every sentence earns its place, making it efficiently concise.

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 2-parameter read-only tool with no output schema, the description is complete: it explains input constraints, return row structure, and error handling. No important behavioral aspects are omitted.

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%, so the schema already describes both parameters. The description adds the crucial semantic that the caller must provide either names or itemIds, and implies mutual exclusivity. It also clarifies the per-entry output fields, adding value 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 tool compares latest Grand Exchange prices for up to 10 items in one call. This distinguishes it from single-item tools like get_item_price or lookup_item by emphasizing the batch comparison use case.

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 implies the tool's context ('up to 10 items in one call') and provides the key usage instruction to provide either names or itemIds. It does not explicitly name alternatives or state when not to use it, but the batch context makes the intended usage clear.

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

estimate_flipEstimate Flip ProfitA
Read-only

Estimate Grand Exchange flip profit after the 2% RS3 sales tax for an item, by itemId or name. This is an ESTIMATE ONLY: guide prices lag the live market, buy limits and fill times are not modelled, and actual profit will differ. Pass buyPrice/sellPrice to model your own offers.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoItem name (provide itemId or name). Prefer lookup_item for fuzzy search.
itemIdNoGrand Exchange item ID (provide itemId or name)
buyPriceNoBuy price per item in coins. Defaults to the current market price.
quantityNoNumber of items to flip (default 1)
sellPriceNoSell price per item in coins. Defaults to the current market price.

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, the description additively discloses that it is 'ESTIMATE ONLY', that guide prices lag the live market, and that buy limits/fill times are not modelled. This clearly sets expectations that actual profit will differ, providing substantial behavioral context.

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: the first states the core purpose and inputs, the second adds essential caveats and parameter guidance. No redundant or filler content, front-loaded with the primary function.

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?

With a read-only annotation, no output schema, and 5 optional parameters, the description fully covers what the tool does, its limitations, and how to customize inputs. It is self-contained and leaves no critical gaps 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.

Parameters4/5

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

Although the schema already provides 100% parameter descriptions, the description adds meaningful guidance by stating 'by itemId or name' and instructing users to 'Pass buyPrice/sellPrice to model your own offers', which clarifies parameter usage and optionality 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 a specific verb ('Estimate') and resource ('Grand Exchange flip profit'), including the 2% RS3 sales tax. It also specifies the input method (by itemId or name), which distinguishes it from sibling tools like get_item_price or lookup_item.

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?

It provides context on when to use this tool (for flipping profit estimates) and warns about limitations (guide prices lag, buy limits/fill times not modelled). However, it does not explicitly name alternative tools or state when NOT to use it, though the caveats imply it shouldn't be used for live-market decisions.

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

get_all_categoriesAll CategoriesA
Read-only

List all RS3 Grand Exchange category IDs and names (0-43).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description 'List' is consistent with a read-only operation. The description adds valuable context by specifying the exact data content (IDs and names) and the index range (0-43), which helps the agent anticipate the output shape. No side effects are relevant, and no contradictions exist.

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, brief sentence that immediately states the action and scope. It contains no filler and is front-loaded with the key information. Every word 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 the tool's simplicity (no parameters, no output schema) and low complexity, the description adequately covers the essential details: what is listed, the specific data fields, and the range. It could theoretically mention the output format, but for a simple list of 44 categories, this is sufficient.

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?

The tool has zero parameters, so the baseline is 4 per the rubric. The description provides no parameter-specific details, but none are needed since the schema is empty and the operation is clear.

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 uses a specific verb 'List' and clearly identifies the resource: 'all RS3 Grand Exchange category IDs and names' with the range '(0-43)'. This distinguishes it from sibling tools like get_category_info, which likely targets a single category. The scope is unambiguous.

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: call this tool when you need all category IDs and names. However, it does not explicitly mention when to use this tool versus alternatives like get_category_info or browse_items. No exclusions are stated, so it is minimally adequate but lacks explicit guidance.

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

get_category_infoCategory InfoA
Read-only

Get letter counts for a Grand Exchange category. Use get_all_categories for IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryYesCategory ID (0-43)

TDQS

A4.4/5.0
Behavior3/5

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

The readOnlyHint annotation already covers the read-only safety profile, so the description doesn't need to repeat that. It adds the domain context (Grand Exchange category) but doesn't disclose any additional behavioral traits like response structure or limits. With annotations present, this is adequate but not rich.

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 short sentences that efficiently state the purpose and provide a key usage pointer. No wasted words, and the most important 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?

For a single-parameter, read-only tool, the description is mostly complete. It explains the tool's function and where to get IDs. The only minor gap is the exact format of 'letter counts' in the response, but given the low complexity, this is a small omission.

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% with a clear parameter description ('Category ID (0-43)'). The description adds extra value by cross-referencing get_all_categories for obtaining valid IDs, which goes beyond the schema and helps the agent source the parameter correctly.

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 a specific action and resource: 'Get letter counts for a Grand Exchange category.' It distinguishes from siblings by focusing on letter counts and explicitly points to get_all_categories for IDs, differentiating from that sibling.

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?

The description provides explicit guidance to 'Use get_all_categories for IDs,' which is a clear alternative for a prerequisite. This helps the agent know when not to use this tool for obtaining IDs, adding valuable usage context.

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

get_ge_infoGrand Exchange InfoA
Read-only

Get Grand Exchange database metadata (lastConfigUpdateRuneday).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true, and the description aligns with a read-only get operation. It adds value by specifying the exact metadata returned (lastConfigUpdateRuneday), providing context beyond the annotation 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?

The description is a single, front-loaded sentence that states the purpose and key data field without any unnecessary words. It earns every character it uses.

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, parameterless tool with a readOnly annotation, the description fully conveys what the tool returns. Since there is no output schema, the description serves as the sole explanation, and it is sufficient.

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?

The tool has no parameters, so the baseline is 4. The description does not need to explain parameter semantics, and the schema is empty, so there is no gap.

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 Grand Exchange database metadata, specifically the lastConfigUpdateRuneday field. This distinguishes it from sibling tools focused on items, prices, or player stats, providing a specific verb and resource.

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 when metadata about the Grand Exchange database is needed, but it does not explicitly contrast with alternatives or state when not to use it. Given the sibling tools, more explicit guidance would help, but the purpose is clear enough to infer usage.

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

get_item_graphGet Item Price GraphA
Read-only

Get historical Grand Exchange price graph data (last 180 days) by itemId or name.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoItem name (provide itemId or name)
itemIdNoGrand Exchange item ID (provide itemId or name)

TDQS

A4/5.0
Behavior3/5

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

With readOnlyHint=true already provided, the description adds useful context about the 180-day historical scope, which is a behavioral detail not present in annotations. However, it does not disclose other potential behaviors such as output format or any limitations, so it provides only moderate added transparency.

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 with front-loaded verb and resource. It includes essential scope (180 days) and input method without any filler or 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?

For a simple read-only tool with two optional params and no output schema, the description provides the core essentials: what data is returned (price graph data), time frame, and how to specify the item. It could be more explicit about the graph format, but given the simplicity and annotation, it is adequately complete.

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 both parameters described in the schema. The description's phrase 'by itemId or name' adds no new semantic depth beyond the schema's property descriptions. Baseline 3 applies since the schema carries full 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 a specific action ('Get historical Grand Exchange price graph data'), the resource (price graph data), and the time scope (last 180 days). It also specifies input methods (by itemId or name), which distinguishes it from sibling tools like get_item_price or summarize_price_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 provides clear context for when to use: when historical graph data over 180 days is needed. It does not explicitly mention alternatives or when not to use, but the context is sufficiently distinct from sibling tools to guide selection.

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

get_item_priceGet Item PriceA
Read-only

Get current Grand Exchange price, trends, and examine text for an item by itemId or exact/near-exact name.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoItem name (provide itemId or name). Prefer lookup_item for fuzzy search.
itemIdNoGrand Exchange item ID (provide itemId or name)

TDQS

A4.2/5.0
Behavior4/5

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

The readOnlyHint annotation indicates a safe read operation. The description adds behavioral context by specifying the matching criteria ('by itemId or exact/near-exact name') and the return contents (price, trends, examine text), which is more than the annotation alone provides. It does not describe edge-case behavior, but for a simple read-only tool this is adequate.

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, front-loaded sentence that conveys the verb, resource, and matching method without any filler. Every word contributes meaning, making it highly concise and well-structured.

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 read-only tool with a fully documented schema and no output schema, the description lists the return contents (price, trends, examine text) and matching criteria, which is sufficient for the complexity. It lacks details on conflict resolution or update frequency, but these are not essential for using the tool 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?

The schema descriptions for both parameters are explicit ('Item name (provide itemId or name). Prefer lookup_item for fuzzy search.' and 'Grand Exchange item ID (provide itemId or name)'), covering 100% of the parameters. The tool description adds no additional parameter meaning beyond what the schema already states, so the baseline of 3 applies.

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 'Grand Exchange price, trends, and examine text for an item', distinguishing it from siblings like lookup_item (fuzzy lookup) and get_item_graph (graph data) by the specific combination of current price, trends, and examine text.

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 schema description for the name parameter explicitly says 'Prefer lookup_item for fuzzy search', which provides an alternative for fuzzy matching. The tool description itself implies use for exact/near-exact names but does not explicitly state when-not-to-use beyond the schema hint, so it gets a 4 rather than a 5.

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

get_player_statsGet Player StatsA
Read-only

Get RS3 hiscores for a player. Normal mode works via Jagex index_lite. Ironman/hardcore use documented Jagex endpoints that currently return HTTP 404; the tool reports that clearly instead of falling back to normal data.

ParametersJSON Schema
NameRequiredDescriptionDefault
gameModeNoHiscores board (default: normal)normal
usernameYesPlayer username to lookup

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only indicate readOnlyHint=true. The description adds valuable behavioral context: that normal mode works via Jagex index_lite, and that ironman/hardcore endpoints are currently broken (HTTP 404), with the tool explicitly reporting this rather than silently falling back to normal data. This goes beyond the annotation and helps the agent understand failure modes.

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 and front-loaded with the main purpose, followed by a clear caveat about ironman/hardcore endpoints. Every sentence earns its place; there is no fluff.

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 lookup tool with only 2 parameters and no output schema, the description covers the core behavior and an important limitation. It doesn't describe the shape of the hiscores response, but given the lack of output schema and the tool's simplicity, it is reasonably complete. Minor gap: no mention of error handling beyond the 404 case.

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?

The schema already covers both parameters (username and gameMode) with descriptions, so the baseline is 3. The description adds semantics for the gameMode parameter by explaining the behavior for normal vs ironman/hardcore, which is not in the schema. This extra context justifies a 4.

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: 'Get RS3 hiscores for a player.' It uses a specific verb and resource, and immediately distinguishes itself from sibling tools (which are all item/price related). The mention of normal vs ironman/hardcore modes further clarifies scope.

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 provides context about when the tool works as expected: normal mode uses index_lite, while ironman/hardcore modes currently return 404 and the tool reports this clearly. This tells the agent what to expect for different game modes, though it does not explicitly reference alternative tools since none exist in the sibling list.

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

get_wiki_page_contentGet Wiki Page ContentA
Read-only

Fetch plain-text content of a RuneScape Wiki page. Follows redirects. Prefer exact titles; use lookup_item or wiki search when unsure.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesWiki page title (spaces allowed; redirects are followed)

TDQS

A4.6/5.0
Behavior4/5

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

Beyond the readOnlyHint annotation, the description adds that redirects are followed and output is plain-text, giving useful behavioral details. It does not specify error handling for missing pages, but this is minor given the tool's simplicity.

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 concise sentences that immediately convey the action and key caveats, with no unnecessary words.

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 single-parameter read-only tool, the description covers the purpose, usage, and key output format. The lack of an output schema is mitigated by the explicit 'plain-text content' statement.

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?

The schema already fully describes the page parameter, including spaces allowed and redirects. The description adds strategic guidance to prefer exact titles, which helps in selecting the parameter 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 states that the tool fetches plain-text content of a RuneScape Wiki page, using a specific verb and resource. It distinguishes from sibling tools which focus on item data, and the 'Prefer exact titles' hints at its specific role.

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?

The description explicitly advises to use lookup_item or wiki search when unsure about the exact title, providing a clear alternative. It also notes that redirects are followed, which informs when the tool can be used.

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

lookup_itemLookup ItemA
Read-only

Resolve an item name to Grand Exchange ID and latest price. Uses exact name match first, then wiki opensearch. Prefer this before get_item_price when you only know the name.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax matches to return (default 5)
queryYesItem name or partial name to search for

TDQS

A4.3/5.0
Behavior4/5

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

With readOnlyHint annotation already declaring safety, the description adds meaningful behavioral detail: it uses exact name match first, then falls back to wiki opensearch. This goes beyond the annotation and helps predict tool behavior, though it doesn't detail response structure or error cases.

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 only two sentences, with the primary purpose front-loaded and the usage guidance appended efficiently. No wasted 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-only lookup tool with fully documented parameters and no output schema, the description covers the essential aspects: purpose, resolution strategy, and usage context. It is complete enough for an agent to decide and 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?

The input schema provides complete descriptions for both parameters (query and limit) with 100% coverage. The description does not add parameter-specific details, so the 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's function: resolving an item name to a Grand Exchange ID and latest price. It distinguishes itself from siblings by explicitly recommending it over get_item_price when only the name is known, which sharpens the purpose.

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 gives explicit usage guidance: 'Prefer this before get_item_price when you only know the name.' This clarifies when to use this tool versus a specific sibling, though it doesn't exhaustively cover when not to use it.

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

summarize_price_historySummarize Price HistoryA
Read-only

Summarize recent Grand Exchange price trends for an item (min/max/average price, change, and average daily volume) by itemId or name. Returns a compact summary instead of raw data points — use get_item_graph when you need the full price series.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoSize of the trailing window in days (7-90, default 30)
nameNoItem name (provide itemId or name)
itemIdNoGrand Exchange item ID (provide itemId or name)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description only needs to add behavioral context. It does so by clarifying the output type (compact summary), naming the returned metrics, and stating that either itemId or name can be used. It does not cover edge cases like missing identifiers or what happens if both are provided, but given the annotation coverage, this is sufficient.

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 only two sentences, front-loaded with the purpose and output, and the second sentence provides the alternative tool. Every word adds value; there is no fluff 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?

With no output schema, the description compensates by explicitly listing the summary metrics and contrasting with get_item_graph. It does not explain behavior for invalid or omitted identifiers, but for a read-only tool with well-documented parameters, the description is largely complete.

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 descriptions cover 100% of parameters, so the baseline is 3. The description repeats 'by itemId or name' but adds no new parameter-specific details. It also does not clarify that exactly one of itemId or name must be supplied, even though the schema lacks required fields. This is a notable gap, but the schema already provides basic parameter meaning.

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 states a specific action ('Summarize recent Grand Exchange price trends for an item') and lists concrete output components (min/max/average price, change, average daily volume). It explicitly differentiates from the sibling tool get_item_graph by noting it returns a compact summary instead of raw data points.

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?

The description gives an explicit alternative: 'use get_item_graph when you need the full price series.' It also implies when not to use this tool ('instead of raw data points'), making the choice clear and actionable.

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

TDQS

A4.3/5.0
Disambiguation4/5

Most tools have clearly distinct purposes, with price-related tools differentiated by granularity (summary vs. full graph vs. current price) and explicit cross-references in descriptions. Minor overlap exists between lookup_item and get_item_price, but the descriptions clarify when to use each.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case, using descriptive verbs like get, summarize, browse, compare, and estimate. No mixed conventions or vague identifiers.

Tool Count5/5

12 tools is well within the ideal 3-15 range and matches the server's multi-faceted scope (GE prices, categories, player stats, wiki content). Each tool has a distinct role, and the count feels neither bloated nor sparse.

Completeness4/5

The Grand Exchange price surface is thoroughly covered: lookup, current price, history, summary, comparison, flipping estimates, categories, and catalogue browsing. Minor gaps include a lack of a dedicated wiki search tool and the known limitation of ironman/hardcore hiscores returning 404.

Maintenance

ActivitySlowing
ResponsivenessNo issues

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

  • F
    license
    A
    quality
    C
    maintenance
    Exposes Old School RuneScape account data (quests, skills, diaries, etc.) via WikiSync and official HiScores, allowing Claude to query player progress without manual copy-pasting.
    2
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with RuneScape 3 and OSRS ecosystems through tools for Grand Exchange prices, player stats, and server data.
    18
    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
    14
    BSD 2-Clause "Simplified"

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/birdwell/runescape-wiki-mcp'

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