Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Recently observed → Unavailable
Certificate recorded, valid to 2027-01-05
Live → Recently observed
Removed "index_tools"; changed the definition of "plan_lanes", "review_week" and "submit_feedback" (5 tools before, 4 now)
Use thiswhenfor a first plan: the userhaslists several interests, projects or hobbies and asks for a plan for the next days or week,forsuchexampleas "I have10 hours a week for an app, a book, guitar and Japanese: plan my week".PassInputeverytips:interestsendaseverynameinterestpluswith afew words ofshort
Unknown → Live
First tool surface recorded: 5 tools (server version 1.0.0)
https://lanes.openkrill.app/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 7 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨23 unchanged words⟩ :{"description":"Weekdays with no tasks, as 3-letter names such as [\"Sun\"] or [\"Sat\", \"Sun\"]. At least one day of the plan must stay a work day.","items":{"enum":["Sun", ⟨8 unchanged words⟩ "},"maxItems":6,"type":"array","uniqueItems":true},"done":{"description":"Only when the earlier plan is not in this chat and the useralreadyretellshadlastaweeklaneinplanwords: the tasks theysay theyfinished,insuchtheiraswords.[\"setSetup the Xcode project\"]. Then also set lane on each interest tolasttheplan'slanelane.it had last week. The answerthenreviews thatplanweek and carries the missed build steps. If the earlier answer or its text is in the chat, use review_week instead.","items":{"maxLength":200,"minLength" ⟨11 unchanged words⟩ week the user has for all of thesetogether.together, 1 to 80, such as 10.","maximum":80,"minimum":1,"type ⟨9 unchanged words⟩ to 12, in the order they gavethem.them, such as [{\"name\": \"Indie iOS app\", \"note\": \"ship a habit tracker\"}, {\"name\": \"Guitar\"}].","items":{"additionalProperties":false,"properties":{" ⟨131 unchanged words⟩ array"},"not_done":{"description":"Onlywhenwiththedone,userforalreadyahadweekaretoldlaneinplanwords: the tasksthey saythetheyuser did not finish,insuchtheiraswords.[\"local storage\"].","items":{"maxLength":200,"minLength": ⟨32 unchanged words⟩ description":"First day of the plan asYYYY-MM-DD.YYYY-MM-DD, such as \"2026-10-08\". Use today in the user's time zone, evenmid-week:mid-week; do not move it to a Monday or ⟨4 unchanged words⟩ user asked to start then. Defaults to today(UTC).in UTC.","pattern":"^\\d{4}-\\d{2}-\\d ⟨9 unchanged words⟩
before
{"properties":{"budget":{"properties":{"build":{"type":"integer"},"open":{"type":"integer"},"reading":{"type":"integer"},"review":{"type":"integer"},"total_minutes":{"type":"integer"}},"required":["total_minutes","build","reading","open","review"],"type":"object"},"changes":{"items":{"type":"string"},"type":"array"},"days":{"items":{"properties":{"date":{"type":"string"},"items":{"items":{"properties":{"id":{"type":"string"},"minutes":{"type":"integer"},"tag":{"type":"string"},"title":{"type":"string"}},"required":["id","tag","title","minutes"],"type":"object"},"type":"array"},"minutes":{"type":"integer"},"off":{"type":"boolean"},"weekday":{"type":"string"}},"required":["date","weekday","off","minutes","items"],"type":"object"},"type":"array"},"lanes":{"properties":{"build":{"properties":{"minutes":{"type":"integer"},"name":{"type":"string"},"note":{"type":"string"},"time":{"type":"string"},"why":{"type":"string"}},"required":["name","note","minutes","time","why"],"type":["object","null"]},"open":{"properties":{"minutes":{"type":"integer"},"name":{"type":"string"},"note":{"type":"string"},"time":{"type":"string"},"why":{"type":"string"}},"required":["name","note","minutes","time","why"],"type":["object","null"]},"parking_lot":{"items":{"properties":{"bookmark":{"type":"string"},"name":{"type":"string"}},"required":["name","bookmark"],"type":"object"},"type":"array"},"reading":{"properties":{"minutes":{"type":"integer"},"name":{"type":"string"},"note":{"type":"string"},"time":{"type":"string"},"why":{"type":"string"}},"required":["name","note","minutes","time","why"],"type":["object","null"]}},"required":["build","reading","open","parking_lot"],"type":"object"},"next_step":{"type":"string"},"notes":{"items":{"type":"string"},"type":"array"},"review":{"properties":{"by_lane":{"items":{"properties":{"done":{"type":"integer"},"lane":{"type":"string"},"not_done":{"type":"integer"}},"required":["lane","done","not_done"],"type":"object"},"type":"array"},"done":{"type":"integer"},"done_percent":{"type":"integer"},"not_done":{"type":"integer"}},"required":["done","not_done","done_percent","by_lane"],"type":"object"},"spine":{"properties":{"sentence":{"type":"string"},"source":{"enum":["given","derived"],"type":"string"}},"required":["sentence","source"],"type":"object"},"status":{"enum":["ok"],"type":"string"},"todo_text":{"type":"string"}},"required":["status","spine","lanes","budget","days","todo_text","notes","next_step"],"type":"object"}after
{"additionalProperties":false,"properties":{"budget":{"additionalProperties":false,"description":"Minutes per lane over the whole plan; build, reading, open and review add up to total_minutes.","properties":{"build":{"description":"Minutes for the build lane.","minimum":0,"type":"integer"},"open":{"description":"Minutes for the side quest; 0 when it is empty or paused.","minimum":0,"type":"integer"},"reading":{"description":"Minutes for the reading lane; 0 when it is empty.","minimum":0,"type":"integer"},"review":{"description":"Minutes for the review task on the last work day.","minimum":0,"type":"integer"},"total_minutes":{"description":"All planned minutes: the weekly hours scaled to the days of the plan.","minimum":0,"type":"integer"}},"required":["total_minutes","build","reading","open","review"],"type":"object"},"changes":{"description":"Only when done or not_done was sent. Plain sentences on what the review changed for the next plan: carried build steps, a paused side quest, fewer hours, a swap from the parking lot. Tell them to the user.","items":{"type":"string"},"type":"array"},"days":{"description":"The plan day by day, from start_date.","items":{"additionalProperties":false,"description":"One day of the plan.","properties":{"date":{"description":"The day as YYYY-MM-DD.","type":"string"},"items":{"description":"The tasks of the day in order; empty on a day off.","items":{"additionalProperties":false,"properties":{"id":{"description":"Task id, d<day>-<n>, such as \"d2-1\" for the first task of day 2. review_week accepts it in done or not_done.","type":"string"},"minutes":{"description":"Minutes for the task.","minimum":1,"type":"integer"},"tag":{"description":"The lane of the task, or review for the weekly review task on the last work day. A carried build step keeps tag build and its title ends with \" (carried)\".","enum":["build","reading","open","review"],"type":"string"},"title":{"description":"Task title that starts with its lane, such as \"Build: Indie iOS app: set up the Xcode project\".","type":"string"}},"required":["id","tag","title","minutes"],"type":"object"},"type":"array"},"minutes":{"description":"Sum of the task minutes on this day.","minimum":0,"type":"integer"},"off":{"description":"True on a day off; it has no tasks.","type":"boolean"},"weekday":{"description":"The weekday as a 3-letter name.","enum":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"type":"string"}},"required":["date","weekday","off","minutes","items"],"type":"object"},"type":"array"},"lanes":{"additionalProperties":false,"description":"Each interest in its lane. Send this object back as review_week.lanes to review the week without the text.","properties":{"build":{"additionalProperties":false,"description":"The build lane; there is always one.","properties":{"minutes":{"description":"Minutes this lane gets over the whole plan.","minimum":0,"type":"integer"},"name":{"description":"Interest name, as the user gave it.","type":"string"},"note":{"description":"The user's note on it; empty when none was given.","type":"string"},"time":{"description":"The same minutes in words, such as \"6 h\" or \"1 h 30 min\", or \"none this plan\" when minutes is 0. Repeat it as is.","type":"string"},"why":{"description":"One sentence on why this interest has this lane.","type":"string"}},"required":["name","note","minutes","time","why"],"type":"object"},"open":{"additionalProperties":false,"description":"The open lane, or null when no interest fills it.","properties":{"minutes":{"description":"Minutes this lane gets over the whole plan.","minimum":0,"type":"integer"},"name":{"description":"Interest name, as the user gave it.","type":"string"},"note":{"description":"The user's note on it; empty when none was given.","type":"string"},"time":{"description":"The same minutes in words, such as \"6 h\" or \"1 h 30 min\", or \"none this plan\" when minutes is 0. Repeat it as is.","type":"string"},"why":{"description":"One sentence on why this interest has this lane.","type":"string"}},"required":["name","note","minutes","time","why"],"type":["object","null"]},"parking_lot":{"description":"Interests that wait this plan, each with a bookmark; nothing is dropped.","items":{"additionalProperties":false,"properties":{"bookmark":{"description":"Where to pick it up next time.","type":"string"},"name":{"description":"Interest name.","type":"string"}},"required":["name","bookmark"],"type":"object"},"type":"array"},"reading":{"additionalProperties":false,"description":"The reading lane, or null when no interest fills it.","properties":{"minutes":{"description":"Minutes this lane gets over the whole plan.","minimum":0,"type":"integer"},"name":{"description":"Interest name, as the user gave it.","type":"string"},"note":{"description":"The user's note on it; empty when none was given.","type":"string"},"time":{"description":"The same minutes in words, such as \"6 h\" or \"1 h 30 min\", or \"none this plan\" when minutes is 0. Repeat it as is.","type":"string"},"why":{"description":"One sentence on why this interest has this lane.","type":"string"}},"required":["name","note","minutes","time","why"],"type":["object","null"]}},"required":["build","reading","open","parking_lot"],"type":"object"},"next_step":{"description":"What to tell or ask the user next.","type":"string"},"notes":{"description":"Short sentences on choices the tool made, such as a guessed spine or an interest moved to the parking lot. Often empty.","items":{"type":"string"},"type":"array"},"review":{"additionalProperties":false,"description":"Only when done or not_done was sent. The count of last week's tasks. The review task itself is not counted.","properties":{"by_lane":{"description":"The same count per lane; a lane with no tasks last week is left out.","items":{"additionalProperties":false,"properties":{"done":{"description":"Tasks done in this lane.","minimum":0,"type":"integer"},"lane":{"description":"Lane name.","enum":["build","reading","open"],"type":"string"},"not_done":{"description":"Tasks not done in this lane.","minimum":0,"type":"integer"}},"required":["lane","done","not_done"],"type":"object"},"type":"array"},"done":{"description":"Tasks ticked or named as done.","minimum":0,"type":"integer"},"done_percent":{"description":"done as a share of all tasks, 0 to 100. Under 40 means fewer hours next plan unless keep_hours is true.","maximum":100,"minimum":0,"type":"integer"},"not_done":{"description":"Tasks not done.","minimum":0,"type":"integer"}},"required":["done","not_done","done_percent","by_lane"],"type":"object"},"spine":{"additionalProperties":false,"description":"The one sentence that points the lanes at the same direction.","properties":{"sentence":{"description":"The spine sentence. Ask the user whether it fits.","type":"string"},"source":{"description":"given: the user's own words from spine. derived: a first guess from the lanes.","enum":["given","derived"],"type":"string"}},"required":["sentence","source"],"type":"object"},"status":{"description":"Always ok; a call that cannot plan returns an error instead.","enum":["ok"],"type":"string"},"todo_text":{"description":"The plan as paste-ready text: header lines (Lane plan, Spine, the lanes, Parking lot), then one \"- [ ] title (minutes) #id\" line per task. Give it word for word; review_week reads it back.","type":"string"}},"required":["status","spine","lanes","budget","days","todo_text","notes","next_step"],"type":"object"}Use this whentheauserplancomesfrombackplan_lanesafterhasaendedlaneandplantheanduser says what got done,forsuchexampleas "here is my list with what I ticked, plan next week".PassInputchecklisttips:thesendtodo_textchecklist,fromtheplan_lanestodo_text with [x] on finished lines,(pasted whole; it carries the lanes andhours). Or, whentheuser tellshours.itWithoutinthewordstext,passsend lanes(build, reading, open and parking_lot namesas theuserearliergivesanswer returned them)with(build required), done and not_done task titlesin the user'sorwordsids,plusand hours_per_week. One of checklist or lanes is required. Optional: start_date, days, days_off, next_steps for ⟨8 unchanged words⟩ interest into the open slot, keep_hours. Returnswhat gotthe done count per lane, the changes it made (carried ⟨21 unchanged words⟩ the same shape as plan_lanes, with new todo_text. Tie-break with plan_lanes: every review of a plan that is in this chat comes here. Not for a first plan (use plan_lanes), a calendar booking or a diagnosis.
{"additionalProperties":false,"properties":{"checklist":{"description":"Theplanmaintextinput:fromthe todo_text from plan_lanes or review_week with each finished line ticked as [x], sent whole from its first line \"Lane plan: ...\".,Itsup4to 8000 characters. Its header lines carry the lanes, the hours and the parking lot, so nothing else is needed. Send checklist or lanes; one of them is required.","maxLength":8000,"type":"string" ⟨57 unchanged words⟩ "},"maxItems":6,"type":"array","uniqueItems":true},"done":{"description":"Finished tasks:,theirup to 60: titles as written,orsuchtheir
before
{"properties":{"budget":{"properties":{"build":{"type":"integer"},"open":{"type":"integer"},"reading":{"type":"integer"},"review":{"type":"integer"},"total_minutes":{"type":"integer"}},"required":["total_minutes","build","reading","open","review"],"type":"object"},"changes":{"items":{"type":"string"},"type":"array"},"days":{"items":{"properties":{"date":{"type":"string"},"items":{"items":{"properties":{"id":{"type":"string"},"minutes":{"type":"integer"},"tag":{"type":"string"},"title":{"type":"string"}},"required":["id","tag","title","minutes"],"type":"object"},"type":"array"},"minutes":{"type":"integer"},"off":{"type":"boolean"},"weekday":{"type":"string"}},"required":["date","weekday","off","minutes","items"],"type":"object"},"type":"array"},"lanes":{"properties":{"build":{"properties":{"minutes":{"type":"integer"},"name":{"type":"string"},"note":{"type":"string"},"time":{"type":"string"},"why":{"type":"string"}},"required":["name","note","minutes","time","why"],"type":["object","null"]},"open":{"properties":{"minutes":{"type":"integer"},"name":{"type":"string"},"note":{"type":"string"},"time":{"type":"string"},"why":{"type":"string"}},"required":["name","note","minutes","time","why"],"type":["object","null"]},"parking_lot":{"items":{"properties":{"bookmark":{"type":"string"},"name":{"type":"string"}},"required":["name","bookmark"],"type":"object"},"type":"array"},"reading":{"properties":{"minutes":{"type":"integer"},"name":{"type":"string"},"note":{"type":"string"},"time":{"type":"string"},"why":{"type":"string"}},"required":["name","note","minutes","time","why"],"type":["object","null"]}},"required":["build","reading","open","parking_lot"],"type":"object"},"next_step":{"type":"string"},"notes":{"items":{"type":"string"},"type":"array"},"review":{"properties":{"by_lane":{"items":{"properties":{"done":{"type":"integer"},"lane":{"type":"string"},"not_done":{"type":"integer"}},"required":["lane","done","not_done"],"type":"object"},"type":"array"},"done":{"type":"integer"},"done_percent":{"type":"integer"},"not_done":{"type":"integer"}},"required":["done","not_done","done_percent","by_lane"],"type":"object"},"spine":{"properties":{"sentence":{"type":"string"},"source":{"enum":["given","derived"],"type":"string"}},"required":["sentence","source"],"type":"object"},"status":{"enum":["ok"],"type":"string"},"todo_text":{"type":"string"}},"required":["status","spine","lanes","budget","days","todo_text","notes","next_step","review","changes"],"type":"object"}after
{"additionalProperties":false,"properties":{"budget":{"additionalProperties":false,"description":"Minutes per lane over the whole plan; build, reading, open and review add up to total_minutes.","properties":{"build":{"description":"Minutes for the build lane.","minimum":0,"type":"integer"},"open":{"description":"Minutes for the side quest; 0 when it is empty or paused.","minimum":0,"type":"integer"},"reading":{"description":"Minutes for the reading lane; 0 when it is empty.","minimum":0,"type":"integer"},"review":{"description":"Minutes for the review task on the last work day.","minimum":0,"type":"integer"},"total_minutes":{"description":"All planned minutes: the weekly hours scaled to the days of the plan.","minimum":0,"type":"integer"}},"required":["total_minutes","build","reading","open","review"],"type":"object"},"changes":{"description":"Plain sentences on what the review changed for the next plan: carried build steps, a paused side quest, fewer hours, a swap from the parking lot. Tell them to the user.","items":{"type":"string"},"type":"array"},"days":{"description":"The plan day by day, from start_date.","items":{"additionalProperties":false,"description":"One day of the plan.","properties":{"date":{"description":"The day as YYYY-MM-DD.","type":"string"},"items":{"description":"The tasks of the day in order; empty on a day off.","items":{"additionalProperties":false,"properties":{"id":{"description":"Task id, d<day>-<n>, such as \"d2-1\" for the first task of day 2. review_week accepts it in done or not_done.","type":"string"},"minutes":{"description":"Minutes for the task.","minimum":1,"type":"integer"},"tag":{"description":"The lane of the task, or review for the weekly review task on the last work day. A carried build step keeps tag build and its title ends with \" (carried)\".","enum":["build","reading","open","review"],"type":"string"},"title":{"description":"Task title that starts with its lane, such as \"Build: Indie iOS app: set up the Xcode project\".","type":"string"}},"required":["id","tag","title","minutes"],"type":"object"},"type":"array"},"minutes":{"description":"Sum of the task minutes on this day.","minimum":0,"type":"integer"},"off":{"description":"True on a day off; it has no tasks.","type":"boolean"},"weekday":{"description":"The weekday as a 3-letter name.","enum":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"type":"string"}},"required":["date","weekday","off","minutes","items"],"type":"object"},"type":"array"},"lanes":{"additionalProperties":false,"description":"Each interest in its lane. Send this object back as review_week.lanes to review the week without the text.","properties":{"build":{"additionalProperties":false,"description":"The build lane; there is always one.","properties":{"minutes":{"description":"Minutes this lane gets over the whole plan.","minimum":0,"type":"integer"},"name":{"description":"Interest name, as the user gave it.","type":"string"},"note":{"description":"The user's note on it; empty when none was given.","type":"string"},"time":{"description":"The same minutes in words, such as \"6 h\" or \"1 h 30 min\", or \"none this plan\" when minutes is 0. Repeat it as is.","type":"string"},"why":{"description":"One sentence on why this interest has this lane.","type":"string"}},"required":["name","note","minutes","time","why"],"type":"object"},"open":{"additionalProperties":false,"description":"The open lane, or null when no interest fills it.","properties":{"minutes":{"description":"Minutes this lane gets over the whole plan.","minimum":0,"type":"integer"},"name":{"description":"Interest name, as the user gave it.","type":"string"},"note":{"description":"The user's note on it; empty when none was given.","type":"string"},"time":{"description":"The same minutes in words, such as \"6 h\" or \"1 h 30 min\", or \"none this plan\" when minutes is 0. Repeat it as is.","type":"string"},"why":{"description":"One sentence on why this interest has this lane.","type":"string"}},"required":["name","note","minutes","time","why"],"type":["object","null"]},"parking_lot":{"description":"Interests that wait this plan, each with a bookmark; nothing is dropped.","items":{"additionalProperties":false,"properties":{"bookmark":{"description":"Where to pick it up next time.","type":"string"},"name":{"description":"Interest name.","type":"string"}},"required":["name","bookmark"],"type":"object"},"type":"array"},"reading":{"additionalProperties":false,"description":"The reading lane, or null when no interest fills it.","properties":{"minutes":{"description":"Minutes this lane gets over the whole plan.","minimum":0,"type":"integer"},"name":{"description":"Interest name, as the user gave it.","type":"string"},"note":{"description":"The user's note on it; empty when none was given.","type":"string"},"time":{"description":"The same minutes in words, such as \"6 h\" or \"1 h 30 min\", or \"none this plan\" when minutes is 0. Repeat it as is.","type":"string"},"why":{"description":"One sentence on why this interest has this lane.","type":"string"}},"required":["name","note","minutes","time","why"],"type":["object","null"]}},"required":["build","reading","open","parking_lot"],"type":"object"},"next_step":{"description":"What to tell or ask the user next.","type":"string"},"notes":{"description":"Short sentences on choices the tool made, such as a guessed spine or an interest moved to the parking lot. Often empty.","items":{"type":"string"},"type":"array"},"review":{"additionalProperties":false,"description":"The count of last week's tasks. The review task itself is not counted.","properties":{"by_lane":{"description":"The same count per lane; a lane with no tasks last week is left out.","items":{"additionalProperties":false,"properties":{"done":{"description":"Tasks done in this lane.","minimum":0,"type":"integer"},"lane":{"description":"Lane name.","enum":["build","reading","open"],"type":"string"},"not_done":{"description":"Tasks not done in this lane.","minimum":0,"type":"integer"}},"required":["lane","done","not_done"],"type":"object"},"type":"array"},"done":{"description":"Tasks ticked or named as done.","minimum":0,"type":"integer"},"done_percent":{"description":"done as a share of all tasks, 0 to 100. Under 40 means fewer hours next plan unless keep_hours is true.","maximum":100,"minimum":0,"type":"integer"},"not_done":{"description":"Tasks not done.","minimum":0,"type":"integer"}},"required":["done","not_done","done_percent","by_lane"],"type":"object"},"spine":{"additionalProperties":false,"description":"The one sentence that points the lanes at the same direction.","properties":{"sentence":{"description":"The spine sentence. Ask the user whether it fits.","type":"string"},"source":{"description":"given: the user's own words from spine. derived: a first guess from the lanes.","enum":["given","derived"],"type":"string"}},"required":["sentence","source"],"type":"object"},"status":{"description":"Always ok; a call that cannot plan returns an error instead.","enum":["ok"],"type":"string"},"todo_text":{"description":"The plan as paste-ready text: header lines (Lane plan, Spine, the lanes, Parking lot), then one \"- [ ] title (minutes) #id\" line per task. Give it word for word; review_week reads it back.","type":"string"}},"required":["status","spine","lanes","budget","days","todo_text","notes","next_step","review","changes"],"type":"object"}⟨24 unchanged words⟩ or a feature request to the maintainers ofthesethetools.tools on this server. Send it when a tool is missing, a ⟨36 unchanged words⟩ name. Returns a ticket id. Feedback is forthesethe tools on this server only: it is not a chat, and ⟨20 unchanged words⟩
⟨66 unchanged words⟩ ,"tool":{"description":"Optional: the exact name of the tool on this server that the feedback is about,forasexampletools/listfind_tariff_codes.shows it.","pattern":"^[A-Za-z0-9_.:-]{1, ⟨9 unchanged words⟩
Index and search openkrill MCP tools by task and keyword — LinkedIn recruiter jobs feedback broken links: search openkrill MCP tools by task. Use this to find a tool for recruiter search, LinkedIn keywords, jobs, feedback, a missing tool, bug reports, broken links, CVEs, packages, a domain check, or any other task. Lists tool name, a plain task phrase, and the MCP URL to connect. Feedback itself is submit_feedback on this same server.