Quillm
Server Details
Dashboards, trackers and docs your agents build and keep current. Your team reads them by link.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- streamfog/quillm-plugin
- GitHub Stars
- 0
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 17 tools
Each tool targets a distinct resource and action: view CRUD (create/get/update/delete/check/share/open), dataset CRUD (create/update/delete/upsert rows/delete rows/query), workspace overview, guide, notes, and feedback. Overlaps are minimal and descriptions clarify when to use check_view vs get_view, open_page vs share_view, and write_notes vs report_feedback.
All tools follow a consistent snake_case verb_noun pattern (e.g., create_view, delete_dataset, get_workspace, upsert_rows). No deviations or mixed conventions are present, making the naming predictable and easy to parse.
With 17 tools, the set is slightly above the typical 3–15 well-scoped range, but each tool earns its place by covering a necessary action for views, datasets, or workspace management. The count is reasonable for the domain, though trimming one or two could make it leaner.
The surface provides full lifecycle coverage for both views (create, get, update, delete, check, share, open) and datasets (create, update schema, delete, upsert rows, delete rows, query). Supporting tools like get_workspace, get_guide, write_notes, and report_feedback round out the domain without obvious gaps.
Available Tools
17 toolscheck_viewTest-render a viewARead-onlyIdempotentInspect
Test-renders a view in a real headless browser, reviews it, and reports render errors, console errors, which datasets it loaded, and what a reader would still be missing. The review sends a screenshot and the page's text to OpenAI, unless the workspace turned checks off. Set screenshot=true to also get an image so you can judge the layout yourself. create_view and update_view already run this automatically; use this tool when you want the screenshot, after changing a dataset, or to confirm the review is clean before you tell the user it is done.
Inputs: slug (required), screenshot.
create_datasetCreate a datasetAInspect
Creates a named table that views read with useDataset(name). Define typed columns and a key: the column(s) that uniquely identify a row (e.g. ["month"], or ["date","campaign"]). The key makes updates idempotent: pushing a row with an existing key updates it instead of duplicating it. You can pass initial rows in the same call. Prefer tidy, raw-ish data (one row per month/day/entity with numeric columns) over pre-aggregated text; views compute totals and deltas themselves. Check get_workspace first: if a dataset with this data already exists, add to it with upsert_rows.
Inputs: key (required), name (required), columns (required), description (required), +2 more.
create_viewCreate a viewAInspect
Creates a new view: a live page at a stable URL in the user's dashboard app. source is ONE file of React (JSX/TSX) that default-exports a component and reads its data with useDataset("dataset_name") from "quillm". Do not embed data in the source; create the dataset first (create_dataset), then the view. Pass the brief: the user's request in their words, and what you asked them and what they answered. When the brief is thin, the response suggests what to ask. Decide the questions next: what the user asked for is the scope, and a small request gets a small page. The view is compiled, test-rendered in a real browser and reviewed immediately: the response tells you whether it rendered, lists errors, and lists what a reader would still be missing, so read it and fix problems with update_view. The checks use two outside services unless the workspace turned them off: TypeSafe reads the brief, and OpenAI reads a screenshot and the page's text. Call get_guide first for the template and available libraries. Check get_workspace first: if a suitable view already exists, use update_view instead.
Inputs: kind (required), slug (required), brief (required), title (required), +8 more.
delete_datasetDelete a datasetADestructiveInspect
Permanently deletes a dataset and all its rows. Refuses if any view still reads it, unless force=true. Only do this when the user asked for it.
Inputs: name (required), reason (required), force.
delete_rowsDelete rowsBDestructiveInspect
Deletes rows from a dataset by key, e.g. keys: [{"month": "2026-01"}], or every row with all=true (use before re-loading a dataset from scratch).
Inputs: dataset (required), all, keys, note.
delete_viewDelete a viewADestructiveInspect
Permanently removes a view from the user's workspace. Only do this when the user asked for it.
Inputs: slug (required), reason (required).
get_guideRead the Quillm guideARead-onlyIdempotentInspect
Returns the complete how-to for Quillm: the view code contract, a working template, the libraries you can import, styling rules, and dataset conventions. Read this once per session before you call create_view or update_view (not again: get_workspace in an empty workspace already includes it).
Inputs: no named parameters.
get_viewRead a viewARead-onlyIdempotentInspect
Returns one view in full: metadata, agent notes, revision history, the schema of every dataset it reads, and its React source code. Always call this before update_view so your edits match the current source exactly.
Inputs: slug (required), revision, include_source.
get_workspaceWorkspace overviewARead-onlyIdempotentInspect
START HERE. Returns everything that exists in the user's Quillm workspace in one compact overview: every view (slug, purpose, datasets it reads, URL, who last changed it), every dataset (columns, key, row count, freshness), workspace notes left by agents, and recent changes. Call this at the start of every task so you extend what exists instead of duplicating it.
Inputs: no named parameters.
open_pagePagesARead-onlyIdempotentInspect
Shows the user a page inside the chat, live, with today's data, in apps that display pages (ChatGPT); elsewhere it returns the page's link. Call it once, last, when you have finished creating or changing a page or its data (after the review is clean), and when the user asks to see, open or show a page. create_view, update_view and upsert_rows show nothing in the chat themselves. Without a slug, lists every page.
Inputs: slug.
query_datasetRead rowsARead-onlyIdempotentInspect
Reads rows from a dataset so you can inspect or analyse what is stored (e.g. to see the latest month before adding the next one). Supports simple filters, ordering and paging. The response includes the total row count.
Inputs: dataset (required), limit, where, offset, +2 more.
report_feedbackReport a Quillm limitationAInspect
Files a note for Quillm's maintainer that Quillm itself fell short, so it can be improved. The note goes to Quillm's maintainer, a person outside the user's workspace, so include nothing private from the user's data. Call it when: you could not do what the user asked because Quillm lacks a capability; you had to use a workaround (if you changed a column type, reshaped data, or dropped something the user asked for to get past an error, that is a workaround); an error message or the guide was confusing or wrong; or a library/feature you needed is missing. One call per distinct problem, filed as soon as you recognise it (before asking the user a follow-up question, not at the end: the conversation may never get there). Still finish the task as well as you can and tell the user about the limitation. Do NOT use it for problems with the user's data or request, for your own coding mistakes that the render check caught, or for praise.
Inputs: goal (required), kind (required), details (required), summary (required), +2 more.
update_datasetChange a dataset's schemaADestructiveInspect
Changes a dataset's schema or metadata: add columns, remove columns, fix a column's description or type (update_columns), change the description or update cadence. Keep descriptions true: when you start storing a new category or scenario, update the column description that lists them. Existing rows keep their values; new columns are null until you upsert values. The key cannot be changed; create a new dataset for that.
Inputs: name (required), note, add_columns, description, +3 more.
update_viewUpdate a viewADestructiveInspect
Changes an existing view's code or metadata. Pass expected_revision (the revision get_view showed you) so you never overwrite a change another agent made in the meantime. Prefer edits (exact string replacements, like a find-and-replace; each old_string must match the current source exactly and be unique) for targeted changes such as adding a chart. Use source only for a full rewrite, or restore_revision to roll back. Every call creates a new revision, is test-rendered and reviewed; a revision that fails its render check is NOT published (readers keep the last working one) and your next edits apply to it. The review sends a screenshot and the page's text to OpenAI, unless the workspace turned checks off. When a follow-up request replaces an earlier approach (a better burn figure, a new default), replace the old blocks instead of keeping both: revisions make removal safe. Call get_view first to get the current source. To change only the numbers a view shows, do NOT use this tool: use upsert_rows on the dataset.
Inputs: slug (required), change_note (required), icon, kind, +10 more.
upsert_rowsAdd or update rowsADestructiveIdempotentInspect
Adds or updates rows in a dataset. This is how you "add new data" or "correct a number": every view reading the dataset shows the change immediately, with no view edit needed. Rows are matched on the dataset's key columns: a new key inserts, an existing key is merged (only the columns you send are overwritten). Safe to re-run. Values must match the column types (number columns take JSON numbers, not strings like "$1,200"; date columns take ISO strings like "2026-03-01" or "2026-03"). Unknown or not applicable is null, never "" or 0. It writes only to this Quillm workspace and calls no other service.
Inputs: rows (required), dataset (required), note.
write_notesLeave notes for future agentsADestructiveIdempotentInspect
Saves durable notes for future agents (including yourself in a later session, with no memory of this one). Use it to record what is NOT obvious from the code: where the data comes from and how to refresh it (queries, API calls, file paths), definitions ("MRR excludes one-off invoices"), and user preferences ("Kev wants EUR, weekly granularity"). Notes attach to a view, a dataset, or the whole workspace, and are shown in get_workspace / get_view. Replaces the previous notes for that target, so include what should be kept.
Inputs: notes (required), target_type (required), target.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
Word docs, Excel sheets and PowerPoint decks your agents create and edit, each with a private link.
A living map of all your work that keeps you, your team, and your agents on the same page
Organize work with your team and agents. Manage tasks, projects and documents.
Your shared chats, calendar, Drive, groups and memory, so a team's agents stay in step.
Related MCP Servers
- AlicenseCqualityBmaintenanceA living map of all your work: projects, tasks, decisions and what waits on whom, kept by you and your agents through the same tools, with every change logged.104 npm1MIT
- AlicenseNot gradedqualityBmaintenanceA frontier knowledge base that’s minimal extensible and agent-native. Built to keep your team’s shared context current and inspectable.1,717Apache 2.0
- AlicenseAqualityBmaintenanceSelf-hosted task tracker and MCP server for AI coding agents. Append-only case files preserve decisions, failed attempts, questions, and check results across sessions. A live web board lets people track progress and answer agents. Runs locally in Docker and connects to Claude Code, Codex, Cursor, and other Streamable HTTP MCP clients. MIT licensed.306MIT
- AlicenseNot gradedqualityCmaintenanceLets coding agents inspect fleet health, file and investigate bugs, request coordinated restarts, and claim, release, and resolve tickets in a shared incident queue without touching processes directly.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.