osrs-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| VISION_PROVIDER | No | Vision provider: 'anthropic' (default) or 'local'. If 'local', you must also set LOCAL_AI_* variables. | anthropic |
| LOCAL_AI_API_KEY | No | API key for local AI server. Required if VISION_PROVIDER=local. | |
| ANTHROPIC_API_KEY | No | API key for Anthropic (Claude) – required if VISION_PROVIDER is not set or set to 'anthropic'. | |
| LOCAL_AI_BASE_URL | No | Base URL for local AI server (e.g., http://localhost:1234). Required if VISION_PROVIDER=local. | |
| LOCAL_AI_THINKING | No | Set to '1' if local model supports reasoning (optional, default '0'). | 0 |
| LOCAL_AI_FAST_MODEL | No | Model name for fast vision analysis. Required if VISION_PROVIDER=local. | |
| LOCAL_AI_DETAIL_MODEL | No | Model name for detailed vision analysis (e.g., qwen2-vl-7b-instruct). Required if VISION_PROVIDER=local. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| find_osrs_windowA | Check if RuneLite is running and get its window ID |
| capture_screenA | Capture a screenshot of the OSRS/RuneLite client window |
| get_statsA | Get all skill levels and XP via RuneLite HTTP Server plugin (/stats). More reliable than vision. |
| get_inventoryA | Get inventory items (id, quantity, slot 0-27) via RuneLite HTTP Server plugin (/inv). More reliable than vision. |
| get_equipmentA | Get currently equipped items via RuneLite HTTP Server plugin (/equip). More reliable than vision. |
| analyze_screenC | Analyze a screenshot of the OSRS client using Claude vision. Can focus on inventory, stats, chat, minimap, bank, shop, NPCs, or give a full analysis |
| analyze_inventoryB | Read all items in the player inventory (28 slots) |
| read_chatB | Extract all visible chat messages from the chat box |
| read_statsB | Read HP, Prayer, Run energy, and Special attack values from the status bars |
| read_minimapA | Analyze the minimap for compass bearing and nearby entities |
| get_game_stateB | Get a comprehensive analysis of the current game state (all elements in one call) |
| detect_dialogA | Read any NPC dialog box, option menu, or level-up popup currently on screen |
| detect_combat_stateB | Read combat indicators: XP drops, enemy HP bar, poison/venom status, overhead prayers |
| detect_lootB | Identify ground items visible on the floor after a kill |
| wiki_searchB | Search the OSRS wiki for pages |
| wiki_pageB | Get the summary/intro of an OSRS wiki page |
| wiki_item_infoA | Get detailed information about an OSRS item from the wiki |
| wiki_npc_infoB | Get information about an NPC from the OSRS wiki |
| wiki_quest_infoC | Get information about a quest from the OSRS wiki |
| ge_priceA | Get the current Grand Exchange price for an item |
| ge_price_historyB | Get GE price history for an item over time |
| ge_mappingA | Get the full item name-to-ID mapping, optionally filtered by name |
| calculate_profitA | Calculate GE flip profit after 1% tax given buy/sell prices and quantity |
| detect_layoutA | Detect whether RuneLite is in fixed (765×503) or resizable mode by reading screenshot pixel dimensions |
| get_tab_coordsA | Get pixel coordinates to click a sidebar tab (prayer, inventory, skills, combat_options, magic, etc.). Auto-detects layout. |
| inventory_slot_coordsB | Get pixel center coordinates for an inventory slot (0-27). Auto-detects layout. |
| get_clickable_regionsA | Get bounding boxes for key UI elements: minimap, inventory, chat, compass. Auto-detects layout. |
| find_npc_on_screenB | Locate a named NPC in the current screenshot and return its screen coordinates |
| find_object_on_screenB | Locate a named interactable object (tree, chest, bank, etc.) and return its screen coordinates |
| skill_xp_infoA | Get XP required for a level, or current level from XP |
| calc_items_to_levelA | Calculate how many items/actions are needed to reach a target skill level given XP per action |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 31 tools
Most tools have distinct purposes, but a few pairs (e.g., analyze_inventory vs get_inventory, analyze_screen vs capture_screen) are similar in goal, differentiated mainly by method. The wiki tools also collectively aim at wiki lookups but target different entities.
Tool names largely follow a verb_noun snake_case pattern (e.g., analyze_inventory, capture_screen). Minor inconsistencies include calc_items_to_level vs calculate_profit, and get_clickable_regions vs get_tab_coords.
With 31 tools, the server exceeds the recommended 15-tool threshold for typical MCPs. Many tools are redundant (e.g., visual vs plugin methods), and the set feels bloated for a single-purpose server.
The tool set covers essential game state reading: inventory, stats, combat, dialog, NPCs, objects, wiki, and GE. Missing are direct action tools (e.g., click, keypress), but those may be handled externally. Gaps are minor.