Skip to main content
Glama
ajkatz

goalplanner-share-mcp

by ajkatz

Craft a Goal Planner import string

craft_import_string

Generate a RuneLite Goal Planner import code from structured goals. Preview the goal list, then confirm to receive paste-ready code.

Instructions

Build a RuneLite Goal Planner import code from a structured goal spec — either ONE section (goals[], GPSHARE1 wire, imports on every plugin build) or MULTIPLE sections at once (sections[], GPSHARE2 wire, including default-plan targeting with reuse-dedup). By DEFAULT (no confirm) it returns a rendering of the goal list as it will appear — section header, each goal with its type/target, prerequisites nested as a guide tree, and per-goal tracking badges — plus warnings, and NO code. Show that to the user so they can adjust the goals; re-run for an updated preview. Only once they confirm it matches their intent, call again with the same goals and confirm:true to receive the paste-ready code. Supports simple goals and complex prerequisite trees (wire via id + requires/orRequires). CRAFTING CONVENTIONS: (1) Keep sections FLAT — never invent parent/summary CUSTOM goals (e.g. an "X log complete" goal requiring the items) unless the user explicitly asks for that structure; a list of items is just the item goals. (2) Prefer typed goals over CUSTOM with a narrative name — account-shaped goals ("maintain quest cape", "reach elite combat achievements", "2100 total level") should be type ACCOUNT with the PHRASE as name: the resolver implies the metric AND milestone, and the goal displays the canonical metric name. Only pass an explicit accountMetric constant when you need a custom display name — usually you don't.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNo"section" = import as a new named section; "goals" = loose goals (land in a "Shared goals" section). Ignored when sections[] is used.
sectionNameNoName for the new section (mode "section").
sectionColorRgbNoSection colour 0xRRGGBB; -1 = default.
sharedByNoAttribution shown in the import prompt.
goalsNoSingle-section form: the goals to encode (GPSHARE1 wire — every plugin build imports it). Relations are wired by id via requires/orRequires.
sectionsNoMulti-section form: several sections in ONE code (GPSHARE2 wire — recipients need a recent plugin build). Each entry imports as its own section; an entry with targetDefault:true lands in the recipient's Default plan with reuse-dedup. Goals may require goals in OTHER sections by their explicit id (emitted as cross-section edges). Use this OR goals, not both.
confirmNoOmit/false to get a preview ONLY (no code). Set true to emit the import code after the user confirms the preview.
Behavior5/5

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

With no annotations, the description fully discloses behavior: default returns preview with rendering and warnings, confirm:true returns paste-ready code; explains GPSHARE1 vs GPSHARE2 wires, reuse-dedup for multi-section, and crafting conventions. This is comprehensive and compensates for lack of annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose with multiple paragraphs and detailed crafting conventions. While well-structured, it could be more concise. The essential information is front-loaded, but the crafting conventions might be better placed elsewhere.

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 complexity (two modes, nested parameters, two-phase workflow), the description covers all necessary context: preview vs confirm behavior, wire formats, dedup rules, and crafting guidelines. No output schema exists, but return values are clearly described.

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 value by explaining the workflow implications (e.g., confirm flag behavior, dedup with targetDefault) and contextual details like wire formats, exceeding mere parameter explanations.

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: 'Build a RuneLite Goal Planner import code from a structured goal spec'. It distinguishes two modes (single section vs multiple sections) and the confirm workflow, making it distinct from sibling tools (decode_import_string and list_supported_goals).

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 explicit usage guidance: when to use single-section vs multi-section, the preview-then-confirm flow, and crafting conventions. It lacks explicit 'when not to use' statements but effectively differentiates from siblings through context.

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

Install Server

Other Tools

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/ajkatz/goalplanner-share-mcp'

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