{"name":"io.github.Misar-AI/misardev-mcp","slug":"misar-ai-misardev-mcp","title":"MisarDev MCP Server","description":"Create, build and deploy projects, roll back with checkpoints, connect custom domains, and search…","url":"https://mcp.market/server/misar-ai-misardev-mcp","rating":null,"grade":"A","score":87,"certified":false,"status":"active","category":"devtools","tags":["devtools","search"],"presence":{"score":33,"stars":0,"forks":0,"downloads_week":82,"last_push_at":"2026-10-23T07:19:26.000Z","license":"MIT"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T07:21:10.809Z","last_ok_at":"2026-11-04T07:21:10.809Z","latency_ms":737},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/Misar-AI/misardev-mcp","website":"https://misar.dev","version":"3.0.0","remotes":[{"type":"streamable-http","url":"https://api.misar.io/dev/mcp","headers":[{"description":"MisarDev API key. Format: Bearer mdk_… — create one at https://misar.dev/settings/api-keys","isRequired":true,"isSecret":true,"name":"Authorization"}]}],"packages":[{"registryType":"npm","identifier":"@misardev/mcp","version":"3.0.0","runtimeHint":"npx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Your MisarDev API key (mdk_…). Create one at https://misar.dev/settings/api-keys.","format":"string","isSecret":true,"name":"MISARDEV_API_KEY"},{"description":"Override the API base URL. Only needed for self-hosted instances.","format":"string","name":"MISARDEV_BASE_URL"}]}],"tools":[{"name":"archive_project","description":"Archive (archived=true) or un-archive (archived=false) a project. Archiving hides it from the active list without deleting anything; it is fully reversible.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Project UUID (from list_projects)"},"archived":{"type":"boolean","description":"true to archive, false to bring it back"}},"required":["id","archived"]}},{"name":"cancel_build","description":"Cancel the build currently running on a project. Work the build had not yet saved is discarded.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Project UUID"}},"required":["id"]}},{"name":"check_subdomain","description":"Check whether a subdomain label is free for this project and, if not, get suggestions. The project's own current subdomain reads as available.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Project UUID (from list_projects)"},"subdomain":{"type":"string","description":"Label to check, e.g. 'my-app'"}},"required":["id","subdomain"]}},{"name":"clear_code_index","description":"Delete every embedding for a project. Code search returns nothing until the project is indexed again. Project files are not touched.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"project_id":{"type":"string","description":"Project UUID"}},"required":["project_id"]}},{"name":"create_api_key","description":"Create a new API key. The raw key is returned ONCE — hand it to the user and never repeat or store it. Every MisarDev key has full API access; keys expire (default 90 days, max 365).","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"type":"string","description":"Key label (1–80 chars)"},"expires_in_days":{"type":"number","description":"Days until expiry (1–365, default 90)"},"ip_allowlist":{"type":"array","items":{"type":"string"},"description":"Optional IPs/CIDRs allowed to use the key"}},"required":["name"]}},{"name":"create_chat_completion","description":"Run a one-shot, non-streaming chat completion on MisarDev's OpenAI-compatible model API. model='misar-online' grounds the answer in the web with citations; omit model for the default coding model. Spends model credits.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"messages":{"type":"array","description":"OpenAI-style messages: [{ role: 'system'|'user'|'assistant', content: string }]","items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant"]},"content":{"type":"string"}},"required":["role","content"]},"minItems":1},"model":{"type":"string","description":"Model id; 'misar-online' or 'misar-search' for web-grounded answers"},"temperature":{"type":"number","description":"Sampling temperature"},"max_tokens":{"type":"number","description":"Maximum tokens to generate"}},"required":["messages"]}},{"name":"create_project","description":"Create a new, empty project (optionally seeded with a file map). Counts against the plan's project quota. To start from a starter instead, use use_template.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"type":"string","description":"Project name (max 100 chars)"},"description":{"type":"string","description":"Optional project description"},"files":{"type":"object","description":"Initial file map: keys are relative file paths, values are file contents"},"settings":{"type":"object","description":"Project settings (e.g. framework, styling)"}},"required":["name"]}},{"name":"delete_checkpoint","description":"Delete one checkpoint from a project's version history. It can no longer be restored afterwards, and the last remaining checkpoint cannot be deleted. Confirm with the user first.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"checkpoint_id":{"type":"string","description":"Checkpoint ID (from list_checkpoints)"}},"required":["checkpoint_id"]}},{"name":"delete_project","description":"Move a project to the trash. It disappears from every list and route immediately; restore_project brings it back during the retention window. Confirm with the user first — anything published from it stops being editable.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Project UUID (from list_projects)"}},"required":["id"]}},{"name":"deploy_project","description":"Publish a project to the public internet on the MisarDev runtime (optionally at a chosen subdomain). The site becomes reachable by anyone. Confirm with the user before calling, check the address first with check_subdomain, and follow with get_deployment_status. Counts against the plan's deploy quota.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Project UUID (from list_projects)"},"subdomain":{"type":"string","description":"Subdomain label to publish at (e.g. 'my-app'); omit to keep the current one"},"public_gallery":{"type":"boolean","description":"List the published app in the public showcase (omit to leave unchanged)"}},"required":["id"]}},{"name":"duplicate_project","description":"Copy a project (files and settings) into a new project you own, named after the original. Counts against the plan's project quota. Any member with read access may duplicate.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Project UUID (from list_projects)"}},"required":["id"]}},{"name":"get_build_status","description":"Get whether a project currently has a build running and its latest build state. Poll this rather than assuming a build finished.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Project UUID"}},"required":["id"]}},{"name":"get_code_index_stats","description":"Get embedding statistics for a project — how many files and chunks are indexed and when.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"project_id":{"type":"string","description":"Project UUID"}},"required":["project_id"]}},{"name":"get_custom_domain","description":"Get a project's custom domain, its status, the DNS record the user must set, and whether DNS already resolves to the platform (TLS is issued automatically once it does).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Project UUID"}},"required":["id"]}},{"name":"get_deployment_status","description":"Get a project's current deployment: whether it is live, its URL, subdomain and custom-domain state. Call after deploy_project to confirm the site is actually up before telling anyone it is.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Project UUID (from list_projects)"}},"required":["id"]}},{"name":"get_project","description":"Get one project by ID — name, description, settings, visibility, version and deployment fields. Read this before update_project so you change the current version, not a stale copy.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Project UUID (from list_projects)"}},"required":["id"]}},{"name":"get_project_backend","description":"Show a full-stack project's database backend: whether one is provisioned, its schema name, table count and connection state.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Project UUID"}},"required":["id"]}},{"name":"get_project_files","description":"Get a project's file tree with file contents. Use this to read code before answering questions about it or proposing an update_project change.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Project UUID (from list_projects)"}},"required":["id"]}},{"name":"get_project_knowledge","description":"Read a project's knowledge — the standing notes (product context, conventions, constraints) the AI builder reads on every change.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Project UUID"}},"required":["id"]}},{"name":"get_subscription","description":"Get the account's subscription: plan, status, current period end and whether it cancels at period end.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"get_template","description":"Get one template by ID — its description, stack and the files it would create.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Template ID (from list_templates)"}},"required":["id"]}},{"name":"get_usage","description":"Get detailed usage for the account. format=quick returns a lightweight summary, format=dashboard the full dashboard data; analytics=true adds a per-day breakdown over `days` (default 30). For plan limits at a glance, use upgrade.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"format":{"type":"string","enum":["quick","dashboard"],"description":"Response format — omit for the default summary"},"analytics":{"type":"boolean","description":"Include the detailed analytics breakdown (default false)"},"days":{"type":"number","description":"Look-back window in days (default 30)"}}}},{"name":"import_artifact","description":"Import a published Misar artifact page into a project as imported/ARTIFACT_ID.html. The url must be exactly https://misar.ai/code/artifact/ARTIFACT_ID; anything else is refused before any fetch.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Project UUID"},"url":{"type":"string","description":"Artifact URL: https://misar.ai/code/artifact/ARTIFACT_ID"}},"required":["id","url"]}},{"name":"index_project_code","description":"Index a project's files for semantic code search (RAG). Pass the files to index as a path → content map; re-indexing a path replaces it. Metered — a paid-plan feature.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"project_id":{"type":"string","description":"Project UUID"},"files":{"type":"object","description":"File map to index: keys are file paths, values are file contents"}},"required":["project_id","files"]}},{"name":"list_api_keys","description":"List your API keys — name, prefix, created/expiry dates and IP allowlist. Never returns the secret.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"list_audit_log","description":"List your own audit trail — API-key, deployment and billing events where you were the actor, newest first. Needs a plan that includes audit logs; otherwise it returns an upgrade message.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Default 50"},"offset":{"type":"integer","minimum":0,"description":"Default 0"},"category":{"type":"string","description":"Only events in this category"},"action":{"type":"string","description":"Only events with this action"}}}},{"name":"list_builds","description":"List your recent AI builds across all projects, newest first, with status, model and the project each belongs to.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"limit":{"type":"number","description":"Max rows to return (default 20)"}}}},{"name":"list_checkpoints","description":"List a project's saved checkpoints (up to 100, newest first) with label, changed paths and timestamp. Checkpoints are the project's version history — use one to undo a bad change.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Project UUID"}},"required":["id"]}},{"name":"list_connectors","description":"List the connectors available on MisarDev and whether each is enabled for you, with its category, status and dashboard path.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"list_notifications","description":"List your notifications (build finished, deploy failed, invitations…), newest first, with the unread count. Pass `before` (an ISO timestamp from the last row) to page back; unread_only=true returns just the count.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"before":{"type":"string","description":"ISO timestamp — return notifications older than this"},"unread_only":{"type":"boolean","description":"Return only { unreadCount }"}}}},{"name":"list_plans","description":"List MisarDev's plans with prices, limits and features — what each upgrade would unlock.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"list_projects","description":"List the projects you own or can access, newest first, with cursor pagination. view=active (default) hides archived and trashed projects; pass view=archived or view=trash to see those.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"limit":{"type":"number","description":"Results per page (default 20, max 100)"},"cursor":{"type":"string","description":"Project ID to start after (from the previous page)"},"view":{"type":"string","enum":["active","archived","trash"],"description":"Which lifecycle view to list (default active)"}}}},{"name":"list_templates","description":"List the starter templates a new project can begin from, with their IDs, names and categories. Pick one here before calling use_template.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"lookup_domain","description":"Look up a domain's public registration data (RDAP): whether it is registered, its registrar and key dates. Useful before suggesting a custom domain.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"Domain name, e.g. example.com"}},"required":["domain"]}},{"name":"mark_notification_read","description":"Mark one notification as read (use mark_notifications_read for all of them).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Notification ID (from list_notifications)"}},"required":["id"]}},{"name":"mark_notifications_read","description":"Mark every notification as read, clearing the unread badge. Nothing is deleted.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"provision_project_backend","description":"Provision the database backend for a full-stack project: its own isolated schema, protected by row-level security. Safe to repeat — an already-provisioned project reports its existing backend.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Project UUID"}},"required":["id"]}},{"name":"remove_custom_domain","description":"Detach a project's custom domain and remove its route. The domain stops serving the app immediately; the default subdomain keeps working. Confirm with the user first.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Project UUID"}},"required":["id"]}},{"name":"rename_checkpoint","description":"Give a checkpoint a human-readable label (1–80 characters) so it is easy to find later.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"checkpoint_id":{"type":"string","description":"Checkpoint ID (from list_checkpoints)"},"label":{"type":"string","description":"New label, 1–80 characters"}},"required":["checkpoint_id","label"]}},{"name":"restore_checkpoint","description":"Restore a project's files to a checkpoint. The current state is snapshotted first, so the restore itself can be undone — but it does overwrite the working files, so confirm with the user. A published site does not change until you deploy again.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"checkpoint_id":{"type":"string","description":"Checkpoint ID (from list_checkpoints)"}},"required":["checkpoint_id"]}},{"name":"restore_project","description":"Restore a project from the trash. A project that was archived before it was trashed returns to the archive, not to the active list.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Project UUID (from list_projects)"}},"required":["id"]}},{"name":"revoke_api_key","description":"Revoke an API key by ID. It is deleted permanently and anything still using it fails immediately. Confirm with the user first, and never revoke the key this session is using without saying so.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"API key ID (from list_api_keys)"}},"required":["id"]}},{"name":"search_project_code","description":"Semantic search inside an indexed project's code. Answer only from the snippets it returns and cite their file paths; if get_code_index_stats shows nothing indexed, index first.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"project_id":{"type":"string","description":"Project UUID"},"query":{"type":"string","description":"Natural-language search query"}},"required":["project_id","query"]}},{"name":"search_workspace","description":"Search across your projects and the public catalogue (templates, skills, the published gallery) by name and description. Does NOT search inside project files — use search_project_code for that. A source that could not be reached is reported as unavailable, never as zero results.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"Search term (very short terms return an empty answer)"},"limit":{"type":"number","description":"Rows across all sources (default 20, max 50)"},"types":{"type":"string","description":"Comma-separated subset of project,template,skill,gallery (default: all)"}},"required":["query"]}},{"name":"set_custom_domain","description":"Attach a domain the user owns to a published project and provision routing/TLS. Paid plans only (the API answers with an upgrade offer otherwise). Returns the DNS record to set — the domain only serves once that record is live.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Project UUID"},"domain":{"type":"string","description":"Domain to attach, e.g. app.example.com"}},"required":["id","domain"]}},{"name":"toggle_connector","description":"Enable or disable a connector by slug (from list_connectors). Reversible.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"slug":{"type":"string","description":"Connector slug (from list_connectors)"},"enabled":{"type":"boolean","description":"true to enable, false to disable"}},"required":["slug","enabled"]}},{"name":"unpublish_project","description":"Take a published site offline. Its public URL stops serving immediately. This is not a rollback — to go back to an earlier version, restore_checkpoint and deploy again. Confirm with the user first.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Project UUID (from list_projects)"}},"required":["id"]}},{"name":"update_project","description":"Update a project's name, description, files, settings or visibility. Files passed here REPLACE the matching paths. Pass the `version` you read with get_project to avoid overwriting someone else's newer edit (the API answers 409 on a conflict).","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Project UUID (from list_projects)"},"name":{"type":"string","description":"New project name"},"description":{"type":"string","description":"New description"},"files":{"type":"object","description":"File map to write: path → content"},"settings":{"type":"object","description":"Updated settings"},"is_public":{"type":"boolean","description":"Make the project public (true) or private (false)"},"version":{"type":"number","description":"Version read from get_project, for conflict detection"}},"required":["id"]}},{"name":"update_project_knowledge","description":"Replace a project's knowledge (up to 20,000 characters) — the standing notes the AI builder reads on every change. This replaces the whole text, so read it with get_project_knowledge first and send the edited version.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Project UUID"},"content":{"type":"string","maxLength":20000,"description":"The full knowledge text"}},"required":["id","content"]}},{"name":"update_project_subdomain","description":"Move a project to a new <subdomain>.misar.app address (check it first with check_subdomain). If the app is published, the live site moves immediately and the OLD address stops working — get the user's explicit approval. If it is not published yet, this just reserves the name for the next deploy.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Project UUID"},"subdomain":{"type":"string","description":"New subdomain, without .misar.app"}},"required":["id","subdomain"]}},{"name":"upgrade","description":"Show the current MisarDev plan, how much of each quota (builds, edits, projects) is left this period, and the link to compare plans and upgrade. Call it any time — not only after hitting a limit. Reads only: it never changes the plan or takes payment. On a local install, open=true also opens the pricing page in the user's browser.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"open":{"type":"boolean","description":"Local installs only: also open the pricing page in the browser. The hosted server returns the link instead."}}}},{"name":"use_template","description":"Create a new project from a template. Returns the new project; counts against the plan's project quota.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Template ID (from list_templates)"},"name":{"type":"string","description":"Name for the new project"}},"required":["id","name"]}},{"name":"web_search","description":"Answer a question from the live web with citations (MisarDev's grounded search). Returns the answer, url_citation annotations and the ranked sources. Spends model credits; quote only what the sources support.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"The question or search query"},"search_context_size":{"type":"string","enum":["low","medium","high"],"description":"How much web context to gather (default medium)"}},"required":["query"]}},{"name":"write_project_files","description":"Create, update or delete files in a project (1–100 per call, each up to 1 MB; paths are relative, no `..`). Other files are left as they are. Overwrites and deletes are applied to the working files immediately — confirm with the user, and use list_checkpoints/restore_checkpoint to undo. Pass `version` (from get_project) to refuse the write if anything changed since you read it. The published site does not change until you deploy again.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Project UUID"},"files":{"type":"array","minItems":1,"maxItems":100,"description":"Files to write","items":{"type":"object","properties":{"path":{"type":"string","description":"Relative path, e.g. src/App.tsx"},"content":{"type":"string","description":"Full file contents (send \"\" for a delete)"},"language":{"type":"string","description":"Optional language hint, e.g. typescript"},"action":{"type":"string","enum":["create","update","delete"],"description":"Default update"}},"required":["path","content"]}},"version":{"type":"integer","minimum":0,"description":"Optional: the project version you last read"}},"required":["id","files"]}}],"scan":{"score":87,"grade":"A","scanned_at":"2026-10-28T18:35:25.486Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-28T18:35:25.415Z","components":{"code":{"score":25,"max":25,"notes":["72 source files scanned"]},"reliability":{"score":17,"max":20,"notes":["remote reachable in 2368ms"]},"poisoning":{"score":15,"max":15,"notes":["54 tool descriptions checked"]},"auth":{"score":8,"max":15,"notes":["API key sent as a header"]},"maintenance":{"score":15,"max":15,"notes":["last push 5 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[],"inputs":{"probes":[{"url":"https://api.misar.io/dev/mcp","reachable":true,"authRequired":false,"latencyMs":2368,"serverInfo":{"name":"misardev","version":"3.0.0"}}],"packages":[{"registryType":"npm","identifier":"@misardev/mcp","version":"3.0.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":1,"publishedAt":"2026-10-17T08:10:55.385Z","repositoryUrl":"git+https://github.com/Misar-AI/misardev-mcp.git","weeklyDownloads":82}],"repo":{"found":true,"owner":"Misar-AI","repo":"misardev-mcp","archived":false,"pushedAt":"2026-10-23T07:19:26Z","stars":0,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/278048041?v=4","ownerCreatedAt":"2026-04-21T10:21:06Z"},"icon":{"url":"https://avatars.githubusercontent.com/u/278048041?v=4&s=128","source":"github"},"presence":{"stars":0,"forks":0,"downloadsWeek":82,"license":"MIT","lastPushAt":"2026-10-23T07:19:26.000Z","score":33}}}},"grade_history":[],"reviews":[]}