RuneScape Wiki

RS3 Grand Exchange prices, item lookup, player hiscores, and RuneScape Wiki content

我该使用它吗

质量与安全性

A
描述质量
96%
模式完整度
84%
命名质量
93%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

发现(1)

  • LOWTool 'estimate_flip' description lacks action verb在 estimate_flip 中

基于对工具定义和协议合规性的自动分析。

上下文开销

~3,090token 数(工具定义)
~2.2 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 2.41%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "runescape-wiki-mcp": {
      "command": "npx",
      "args": [
        "runescape-wiki-mcp"
      ]
    }
  }
}

可运行的软件包

npmrunescape-wiki-mcp1.2.0stdio

远程端点

https://runescape-wiki-mcp.fly.dev/mcpstreamable-http

它能做什么

工具清单

工具(12)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢lookup_item(query, limit)

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.

输入模式

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "description": "Item name or partial name to search for"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "description": "Max matches to return (default 5)"
    }
  },
  "required": [
    "query"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "matches": {
      "type": "array",
      "description": "Matching Grand Exchange items, best match first",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Grand Exchange item ID"
          },
          "name": {
            "type": "string",
            "description": "Item name"
          },
          "price": {
            "type": "number",
            "description": "Latest price in coins, when known"
          },
          "volume": {
            "type": "number",
            "description": "Latest trade volume, when known"
          },
          "timestamp": {
            "type": "string",
            "description": "ISO timestamp of the price sample"
          },
          "wikiUrl": {
            "type": "string",
            "description": "RuneScape Wiki page URL"
          },
          "error": {
            "type": "string",
            "description": "Why this row could not be resolved"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "matches"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_item_graph(itemId, name)

Read the public Jagex Grand Exchange daily price series for one item, about the last 180 days. Pass exactly one of itemId or name. No auth and no side effects. Use summarize_price_history for min, max, and average instead of the raw series.

输入模式

{
  "type": "object",
  "properties": {
    "itemId": {
      "type": "integer",
      "minimum": 0,
      "description": "Grand Exchange item ID (provide itemId or name)"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "Item name (provide itemId or name)"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "Raw Jagex JSON. Price fields may be integers or compact strings such as \"80k\".",
  "additionalProperties": true
}
🟢get_item_price(itemId, name)

Get current Grand Exchange price, trends, and examine text for an item. Pass exactly one of itemId or name.

输入模式

{
  "type": "object",
  "properties": {
    "itemId": {
      "type": "integer",
      "minimum": 0,
      "description": "Grand Exchange item ID (provide itemId or name)"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "Item name (provide itemId or name). Prefer lookup_item for fuzzy search."
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "Raw Jagex JSON. Price fields may be integers or compact strings such as \"80k\".",
  "additionalProperties": true
}
🟢get_ge_info

Read Grand Exchange database metadata, including lastConfigUpdateRuneday. This is not item prices; use get_item_price or lookup_item for those. Takes no arguments. Public Jagex endpoint, no auth.

输入模式

{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "Raw Jagex JSON. Price fields may be integers or compact strings such as \"80k\".",
  "additionalProperties": true
}
🟢get_category_info(category)

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

输入模式

{
  "type": "object",
  "properties": {
    "category": {
      "type": "integer",
      "minimum": 0,
      "maximum": 43,
      "description": "Category ID (0-43)"
    }
  },
  "required": [
    "category"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_all_categories

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

输入模式

{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢browse_items(category, alpha, page)

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.

输入模式

{
  "type": "object",
  "properties": {
    "category": {
      "type": "integer",
      "minimum": 0,
      "maximum": 43,
      "description": "Category ID (0-43)"
    },
    "alpha": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1,
      "description": "Starting letter (a-z) or # for numbers. Defaults to \"a\"."
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "description": "Page number (starting from 1)"
    }
  },
  "required": [
    "category"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢summarize_price_history(itemId, name, days)

Summarize one item's recent Grand Exchange prices: min, max, average, change, and average daily volume. Pass exactly one of itemId or name, and optional days from 7 to 90 (default 30). Use get_item_graph for the full daily series.

输入模式

{
  "type": "object",
  "properties": {
    "itemId": {
      "type": "integer",
      "minimum": 0,
      "description": "Grand Exchange item ID (provide itemId or name)"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "Item name (provide itemId or name)"
    },
    "days": {
      "type": "integer",
      "minimum": 7,
      "maximum": 90,
      "description": "Size of the trailing window in days (7-90, default 30)"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "itemId": {
      "type": "integer",
      "description": "Grand Exchange item ID"
    },
    "name": {
      "type": "string",
      "description": "Name supplied by the caller, when given"
    },
    "windowDays": {
      "type": "integer",
      "description": "Trailing window actually summarized"
    },
    "sampleCount": {
      "type": "integer",
      "description": "Daily samples inside the window"
    },
    "latestPrice": {
      "type": "number",
      "description": "Newest price in the window, in coins"
    },
    "oldestPriceInWindow": {
      "type": "number",
      "description": "Oldest price in the window, in coins"
    },
    "minPrice": {
      "type": "number",
      "description": "Lowest price in the window, in coins"
    },
    "maxPrice": {
      "type": "number",
      "description": "Highest price in the window, in coins"
    },
    "avgPrice": {
      "type": "number",
      "description": "Average price in the window, in coins"
    },
    "changeAbs": {
      "type": "number",
      "description": "latestPrice minus oldestPriceInWindow"
    },
    "changePct": {
      "type": "number",
      "description": "Percent change across the window"
    },
    "avgDailyVolume": {
      "type": "number",
      "description": "Average daily volume, when the source provided it"
    }
  },
  "required": [
    "itemId",
    "windowDays",
    "sampleCount",
    "latestPrice",
    "oldestPriceInWindow",
    "minPrice",
    "maxPrice",
    "avgPrice",
    "changeAbs",
    "changePct"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢compare_items(names, itemIds)

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.

输入模式

{
  "type": "object",
  "properties": {
    "names": {
      "type": "array",
      "minItems": 1,
      "maxItems": 10,
      "uniqueItems": true,
      "items": {
        "type": "string",
        "minLength": 1,
        "description": "Item name, e.g. \"Abyssal whip\""
      },
      "description": "Item names to compare (1-10). Provide names or itemIds, not both."
    },
    "itemIds": {
      "type": "array",
      "minItems": 1,
      "maxItems": 10,
      "uniqueItems": true,
      "items": {
        "type": "integer",
        "minimum": 0,
        "description": "Grand Exchange item ID"
      },
      "description": "Grand Exchange item IDs to compare (1-10). Provide names or itemIds, not both."
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "compared": {
      "type": "integer",
      "description": "Number of rows returned"
    },
    "rows": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Name or id that was requested"
          },
          "id": {
            "type": "integer",
            "description": "Grand Exchange item ID"
          },
          "name": {
            "type": "string"
          },
          "price": {
            "type": "number",
            "description": "Latest price in coins"
          },
          "volume": {
            "type": "number"
          },
          "timestamp": {
            "type": "string"
          },
          "error": {
            "type": "string",
            "description": "Present when this row could not be resolved"
          }
        },
        "required": [
          "query"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "compared",
    "rows"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢estimate_flip(itemId, name, buyPrice, sellPrice, quantity)

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.

输入模式

{
  "type": "object",
  "properties": {
    "itemId": {
      "type": "integer",
      "minimum": 0,
      "description": "Grand Exchange item ID (provide itemId or name)"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "Item name (provide itemId or name). Prefer lookup_item for fuzzy search."
    },
    "buyPrice": {
      "type": "integer",
      "minimum": 0,
      "description": "Buy price per item in coins. Defaults to the current market price."
    },
    "sellPrice": {
      "type": "integer",
      "minimum": 0,
      "description": "Sell price per item in coins. Defaults to the current market price."
    },
    "quantity": {
      "type": "integer",
      "minimum": 1,
      "description": "Number of items to flip (default 1)"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "itemId": {
      "type": "integer"
    },
    "itemName": {
      "type": "string"
    },
    "quantity": {
      "type": "integer"
    },
    "buyPrice": {
      "type": "number",
      "description": "Buy price per item in coins"
    },
    "sellPrice": {
      "type": "number",
      "description": "Sell price per item in coins"
    },
    "taxRate": {
      "type": "number"
    },
    "taxPerUnit": {
      "type": "number"
    },
    "totalTax": {
      "type": "number"
    },
    "grossProfit": {
      "type": "number"
    },
    "netProfit": {
      "type": "number"
    },
    "netProfitPerUnit": {
      "type": "number"
    },
    "marginPct": {
      "type": [
        "number",
        "null"
      ]
    },
    "breakEvenSellPrice": {
      "type": "number"
    },
    "assumptions": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "itemId",
    "quantity",
    "buyPrice",
    "sellPrice",
    "netProfit"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "Flip estimate after the RS3 2% seller tax. marginPct is null when the buy cost is 0.",
  "additionalProperties": true
}
🟢get_player_stats(username, gameMode)

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.

输入模式

{
  "type": "object",
  "properties": {
    "username": {
      "type": "string",
      "minLength": 1,
      "description": "Player username to lookup"
    },
    "gameMode": {
      "type": "string",
      "enum": [
        "normal",
        "ironman",
        "hardcore"
      ],
      "description": "Hiscores board (default: normal)",
      "default": "normal"
    }
  },
  "required": [
    "username"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "Map of RS3 skill name to hiscores row. Overall is included.",
  "additionalProperties": {
    "type": "object",
    "properties": {
      "rank": {
        "description": "Hiscores rank, or the string Unranked",
        "anyOf": [
          {
            "type": "integer"
          },
          {
            "const": "Unranked"
          }
        ]
      },
      "level": {
        "type": "integer",
        "description": "Skill level"
      },
      "experience": {
        "type": "integer",
        "description": "Skill experience"
      }
    },
    "required": [
      "rank",
      "level",
      "experience"
    ],
    "additionalProperties": false
  }
}
🟢get_wiki_page_content(page)

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

输入模式

{
  "type": "object",
  "properties": {
    "page": {
      "type": "string",
      "minLength": 1,
      "description": "Wiki page title (spaces allowed; redirects are followed)"
    }
  },
  "required": [
    "page"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

社区

评价此服务器

证据

最近观测

已验证未记录版本12 个工具