Skip to main content
Glama

fenbs_create_item

Add a task to a board. Requires permission to add tasks. fenbs first checks the open tasks and the ones finished in the last 14 days: if one looks like the same thing, nothing is made and you get the likely matches (created: false). An open match: comment on it (fenbs_comment). A finished one ("finished" says how and when): move it back to To Do (fenbs_update_item lane "backlog") if it is the same thing back again, or call again with unlessSimilar: false and relatesTo its ref for a new task linked to it. Call again with unlessSimilar: false alone if yours is genuinely different. From an automated source, pass key: the same key never files twice. note is the problem (what, why, where); plan is how it will be done, when that is known -- keep the two apart. A free board near its limit adds a top-level plan notice (the free plan of the board: tasks left, and upgradeUrl; the plan of the task itself is inside created): tell your user how many are left and give them the upgradeUrl. A refusal with upgradeUrl (a full or read-only board) is the same: relay the message and give them the link.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
keyNoOptional, for automated sources (a Sentry issue id, a CI job, an error fingerprint): a live task with this key is returned instead of a new one. Up to 120 characters.
fullNotrue: answer with the whole task. Otherwise a short confirmation.
kindYes
laneNoThe lane, by its key. People see backlog as To Do, next as Next Up, doing as In Progress and done as Completed: use those names when you talk to people.
noteNoThe Problem box: what is wrong or missing, why it matters, and where -- file and line for code; repro steps for a bug. Written once; the fix goes in plan, not here.
planNoThe Plan box: how it will be done -- the approach, the files to change, the traps, and how it will be checked. The remaining steps go in steps, the checklist, not here. Leave it out until somebody knows; do not put a PLAN heading in the note instead. A replaced plan is kept: fenbs_get_item shows the earlier versions.
sizeNoHow big: xs (under an hour), s (an afternoon), m (a day or two), l (about a week), xl (too big -- split it). "none" takes a size off.
boardYesBoard slug from fenbs_list_boards (its name also works).
stepsNoRemaining steps: the ordered checklist of what is left to do, one short line each (at most 30, each under 300 characters), e.g. ["Write the SQL", "Build the API", "Ship"]. A string is a step not done yet; {text, done} sets done too. get_context shows each task in progress as "step n of N next: <text>", so the next assistant always sees what comes next. Tick them off with doneSteps as you go.
titleYes
projectNoThe project this belongs to, by name -- for software, usually the repository or app. A new name creates the project; case is ignored when matching, so reuse the names fenbs_list_boards shows.
sessionNoA short name for this session or window, e.g. "Claude Code c--ws 33edc07d". Pass the same one on every call. Every window you open shares this connection, so without it fenbs shows only the connection name and cannot tell your windows apart.
categoryNoAn optional second grouping, by name, e.g. "Checkout" or "Mobile". A new name creates it.
priorityNo1 is most urgent. 1-2 High, 3-5 Medium, 6-10 Low. Leave it out for 5, an ordinary task.
relatesToNoRefs of tasks this one relates to -- e.g. the finished task a bug has come back from. Linked both ways.
testNotesNoHow it was tested: what was checked, where (dev, a private API, live), the result -- and what was NOT checked. Rewritten whole, like plan; "" clears it.
testStatusNoHow it was tested: untested (the default), tested, partly, failed, or needs-check -- what only a person can confirm (a store build, a real payment, a live page). Never claim tested for a check you did not run; use needs-check or partly and say what is left.
unlessSimilarNoDefault true: hold back when an open or recently finished task looks like the same thing. false files it regardless.
whereItStandsNoWhere the work stands right now: done so far (commits), what is not done, anything still running, anything waiting on a person. Short; overwritten each time -- the old text is kept, and fenbs_get_item shows the earlier versions. The remaining steps live in steps, the checklist: tick them there instead of listing them here. Plan says how; steps say what is left; this says where things are.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / plan / description
      Previous value: -"The Plan box: how it will be done -- the steps, the files to change, the traps, and how it will be checked. Leave it out until somebody knows; do not put a PLAN heading in the note instead."New value: +"The Plan box: how it will be done -- the approach, the files to change, the traps, and how it will be checked. The remaining steps go in steps, the checklist, not here. Leave it out until somebody knows; do not put a PLAN heading in the note instead. A replaced plan is kept: fenbs_get_item shows the earlier versions."
    • addedInput schema / properties / session
      Added value: +{
      +  "description": "A short name for this session or window, e.g. \"Claude Code c--ws 33edc07d\". Pass the same one on every call. Every window you open shares this connection, so without it fenbs shows only the connection name and cannot tell your windows apart.",
      +  "type": "string"
      +}
    • addedInput schema / properties / steps
      Added value: +{
      +  "description": "Remaining steps: the ordered checklist of what is left to do, one short line each (at most 30, each under 300 characters), e.g. [\"Write the SQL\", \"Build the API\", \"Ship\"]. A string is a step not done yet; {text, done} sets done too. get_context shows each task in progress as \"step n of N next: <text>\", so the next assistant always sees what comes next. Tick them off with doneSteps as you go.",
      +  "items": {
      +    "anyOf": [
      +      {
      +        "type": "string"
      +      },
      +      {
      +        "additionalProperties": false,
      +        "properties": {
      +          "done": {
      +            "type": "boolean"
      +          },
      +          "text": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "text"
      +        ],
      +        "type": "object"
      +      }
      +    ]
      +  },
      +  "type": "array"
      +}
    • changedInput schema / properties / whereItStands / description
      Previous value: -"Where the work stands right now and what comes next: done so far (commits), not done, next step, anything still running, anything waiting on a person. Short; overwritten each time, the old text kept in History. Plan says how; this says where it is."New value: +"Where the work stands right now: done so far (commits), what is not done, anything still running, anything waiting on a person. Short; overwritten each time -- the old text is kept, and fenbs_get_item shows the earlier versions. The remaining steps live in steps, the checklist: tick them there instead of listing them here. Plan says how; steps say what is left; this says where things are."
  2. Changed1 schema field changed
    • addedInput schema / properties / board / description
      Added value: +"Board slug from fenbs_list_boards (its name also works)."
  3. Changed2 schema fields changed
    • addedInput schema / properties / full
      Added value: +{
      +  "description": "true: answer with the whole task. Otherwise a short confirmation.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / whereItStands
      Added value: +{
      +  "description": "Where the work stands right now and what comes next: done so far (commits), not done, next step, anything still running, anything waiting on a person. Short; overwritten each time, the old text kept in History. Plan says how; this says where it is.",
      +  "type": "string"
      +}
  4. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations declare the safety profile (readOnly=false, destructive=false, idempotent=false), and the description layers on substantial context the annotations cannot: permission requirement, the 14-day similarity check and its 'created: false' outcome, free-board limit notices with upgradeUrl, and refusal handling. This is real behavior disclosure beyond the structured fields.

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

Conciseness4/5

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

Front-loaded with the core action and dense but purposeful. Every sentence carries load for a 19-parameter tool, though the single unbroken block makes the dedup flow harder to scan than a few short clauses would.

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 19-parameter mutation tool with no output schema, the description covers permissions, dedup semantics, plan-limit messaging, refusal handling, and the roles of the many optional fields, and it sketches the return shape (created flag, matches, refs). An agent has what it needs to call it 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?

Schema coverage is 89%, so the schema already carries most parameter meaning. The description nonetheless adds cross-parameter guidance the schema lacks: the note/plan/steps/whereItStands separation of duties, and the human-facing lane names. It stops short of detailing several optional fields, keeping it just above the schema-only 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?

Opens with a specific verb+resource, 'Add a task to a board', and immediately names the constraints and the distinct dedup behavior that separates it from a plain insert. It explicitly routes to siblings (fenbs_comment, fenbs_update_item) so an agent can tell it apart without opening schemas.

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?

Gives explicit when/when-not: comment on an open match via fenbs_comment, move a finished match back with fenbs_update_item, or re-call with unlessSimilar:false alone when the item is genuinely different. It also names the automated-source condition (pass key) and the exception, so nothing is left to inference.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources