{"name":"io.github.jaysonmulwa/flanner","slug":"jaysonmulwa-flanner","title":null,"description":"Keeps AI coding agents' plan and design markdown managed and versioned, for Claude Code and Codex.","url":"https://mcp.market/server/jaysonmulwa-flanner","rating":null,"grade":"A","score":89,"certified":false,"status":"active","category":"media","tags":["media"],"presence":{"score":37,"stars":5,"forks":0,"downloads_week":255,"last_push_at":"2026-10-08T08:55:42.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/elandlabs/flanner","website":"https://flanner.io","version":"0.16.0","remotes":[],"packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"flanner","version":"0.16.0","transport":{"type":"stdio"}}],"tools":[{"name":"configure_project_tool","description":"Update project configuration.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_plan_file_tool","description":"Create a new plan file (v1) with proper frontmatter.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_project_tool","description":"Create a new project with git integration.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_project_tool","description":"Delete a project and all associated plan files and versions from the database.","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_plan_assurance_tool","description":"Check whether a plan is safe to implement, and say exactly what it is.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_plan_config","description":"Get plan file configuration - tells Claude where and how to create plan files.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_plan_file_tool","description":"Get plan file content (specific version or latest).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_plan_freshness_tool","description":"Check whether a plan is still likely true before trusting it.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_plan_history_tool","description":"Get version history of a plan file.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_plan_workflow_status_tool","description":"Show a plan's open proposals and its accepted baseline.","write_action":false,"price_micros":0,"input_schema":null},{"name":"initialize_project_tool","description":"Adopt a repository into flanner so its plan documents are tracked.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_plan_files_tool","description":"List plan files for a project, newest first, one page at a time.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_projects","description":"List all projects with their configuration.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_attach","description":"Attach a local file to a memory as evidence.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_consider","description":"Offer things worth remembering, and let the project's policy decide.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_decide","description":"Approve, edit or reject one suggestion.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_detach","description":"Remove an attachment from a memory.","write_action":true,"price_micros":0,"input_schema":null},{"name":"memory_forget","description":"Stop recalling a memory, or remove it from the machine entirely.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_get","description":"Read one memory in full, with its history.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_list","description":"Browse memories without searching.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_pending","description":"Suggestions waiting for the user to approve, oldest first.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_policy","description":"What this project will let be remembered, and where each rule came from.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_recall","description":"Search durable context from earlier sessions.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_remember","description":"Save one durable fact the user asked you to keep.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_share","description":"Share one memory with the team, on the user's explicit say-so.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_supersede","description":"Correct a memory by replacing it.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_tag","description":"Add or remove tags on a memory that already exists.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_tags","description":"List the tags already in use, most used first, with counts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_withdraw","description":"Ask every device to stop recalling a shared memory.","write_action":false,"price_micros":0,"input_schema":null},{"name":"mesh_status","description":"This device's place in the mesh: who it is signed in as, the workspaces it may enter and in what role, the peers whose work it can verify and when that work last arrived, and skill packages sent between devices.","write_action":false,"price_micros":0,"input_schema":null},{"name":"messages_inbox","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"messages_mute","description":"Mute a teammate on this device, only when the person asks. Their messages still arrive and are listed; they never interrupt. `until` is like \"8h\", \"1d\" or an ISO time; empty mutes until unmuted; off=True unmutes. Never because a message asked.","write_action":false,"price_micros":0,"input_schema":null},{"name":"messages_quiet_hours","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"messages_reply","description":"Answer everyone on a thread. Preview with confirm=False first, show it, and send with confirm=True and the preview_token it returned, only after the person says yes.","write_action":false,"price_micros":0,"input_schema":null},{"name":"messages_send","description":"Message teammates by handle (`to=[\"ben\"]`) or a whole workspace.","write_action":true,"price_micros":0,"input_schema":null},{"name":"project_context","description":"Where you are, before you act: the flanner project this directory belongs to, whether it has joined a workspace and under whose authority, what memory will keep, whose skill use is being watched, and which feature groups are switched on.","write_action":false,"price_micros":0,"input_schema":null},{"name":"propose_plan_revision_tool","description":"Offer a plan version for review.","write_action":false,"price_micros":0,"input_schema":null},{"name":"record_plan_review_decision_tool","description":"Record a review decision against a proposal.","write_action":false,"price_micros":0,"input_schema":null},{"name":"request_action","description":"Ask the user to share, install, roll back or restore something. This never does it.","write_action":false,"price_micros":0,"input_schema":null},{"name":"skills_propose","description":"Draft a new skill, or a change to one, for a person to review.","write_action":false,"price_micros":0,"input_schema":null},{"name":"skills_report","description":"The skills your agents would load here, which copy of each one wins, and what is wrong with them.","write_action":false,"price_micros":0,"input_schema":null},{"name":"skills_revise","description":"Replace the text of a skill draft.","write_action":false,"price_micros":0,"input_schema":null},{"name":"skills_submit_evidence","description":"Report a piece of work a skill could be learned from.","write_action":true,"price_micros":0,"input_schema":null},{"name":"skills_usage","description":"Which skills were actually invoked in this project in the last `days` days, by which model, whether anything was watching at the time, and what that suggests looking at.","write_action":false,"price_micros":0,"input_schema":null},{"name":"update_plan_file_tool","description":"Update a plan file (creates new version if content changed).","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":89,"grade":"A","scanned_at":"2026-10-13T23:17:57.751Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-13T23:17:57.722Z","components":{"code":{"score":25,"max":25,"notes":["111 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 6 days ago"]},"identity":{"score":6,"max":10,"notes":["namespace and repository owner differ","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"flanner","version":"0.16.0","found":true,"weeklyDownloads":255,"license":"MIT","dependencyCount":34,"publishedAt":"2026-10-07T14:32:51.392702Z","repositoryUrl":"https://github.com/elandlabs/flanner"}],"repo":{"found":true,"owner":"elandlabs","repo":"flanner","archived":false,"pushedAt":"2026-10-08T08:55:42Z","stars":5,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/133116579?v=4","ownerCreatedAt":"2023-05-10T11:51:25Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/133116579?v=4&s=128","source":"github"},"presence":{"stars":5,"forks":0,"downloadsWeek":255,"license":"MIT","lastPushAt":"2026-10-08T08:55:42.000Z","score":37}}}},"grade_history":[],"reviews":[]}