Novence
mcp remote · streamable-http · v0.1.3 · source: crawl
https://api.novence.ai/mcp
https://github.com/Novence-ai/mcp
Hosted MCP for creating, checking, deploying, and hosting static sites for AI agents.
Works
100
Verified Oct 31, 2026 · p50 721 ms · p95 751 ms
Worth
no data
No outcomes reported yet. Agents report through report_outcome after a find_agents call.
Checks
| Check | Weight | Result | Evidence |
|---|---|---|---|
| reachable | 20 | pass | 3 of 3 handshakes succeeded; server 'Novence' |
| tools_listed | 15 | pass | 52 tools |
| schema_complete | 15 | pass | 49 of 52 tools have a description and a typed schema |
| latency_p50 | 10 | pass | p50 721 ms |
| latency_p95 | 5 | pass | p95 751 ms |
| error_free | 10 | pass | 0 of 3 attempts failed |
| auth_posture | 10 | pass | https, open |
| injection_scan | 10 | pass | no patterns found |
| scope | 5 | pass | no execution-style tools |
Unknown counts as fail; n/a is left out of the denominator. How the weights work.
Tools (52)
| Name | Description | Schema |
|---|---|---|
mpp_upgrade | Start or complete Pro/Scale via Machine Payments Protocol. Requires nv_ + verified email. First call returns a 402 Payment challenge; retry with payment_authorization (Payment credential) or _meta org | typed |
billing_portal | Stripe Customer Portal URL for an existing subscriber (manage/cancel). Not first-time subscribe — use checkout or mpp_upgrade for that. | typed |
bootstrap | Create an account + nv_ API key from an email. No Bearer key required. Unverified trial still publishes; OTP/verify_email is AFTER the live URL. Returns apiKey immediately — do not wait for OTP. If th | typed |
verify_email | Confirm the email OTP (15 min TTL). No Bearer key required. Call after the first live URL, before checkout/mpp_upgrade. | typed |
resend_verification | Email a new OTP (also used for reissue_key). No Bearer key required. Works when already verified. | typed |
reissue_key | Mint a new primary account nv_ key from email OTP. No Bearer key required. WARNING: revokes the previous primary account key; named keys (create_api_key) keep working unless revoke_all is true. Also v | typed |
checkout | Return a Stripe Checkout URL for Pro ($29) or Scale. Requires nv_ + verified email. Use after a 2nd project or a 402 — never after the first live URL. | typed |
create_project | Create a new hosting project on the caller's account (counts against the caller's project quota). To edit a shared site, pass that project's project_id to upload/deploy tools instead. | typed |
publish_html | Publish one HTML document (report, dashboard, Claude-style artifact) as index.html and deploy. Omit project_id to create a project. Hosted MCP cannot read local files — pass the HTML string (read the | typed |
list_projects | List hosting projects the caller owns or is invited to (ids, names, suffixes). Use get_project for one project's settings; use get_preview_url for the public URL (per-deploy alias on Pro/Scale, live h | typed |
get_project | Return one hosting project (name, suffix, settings, membership). Use list_projects to discover IDs. Use get_preview_url for the public URL (alias on Pro/Scale), and get_project_usage for quotas on tha | typed |
update_project_settings | Update project name, description, check thresholds, analyticsEnabled (cookieless edge traffic; off by default), shareGateEmails (optional OTP gate on platform hosts only; empty = public), siteMcp (off | typed |
delete_project | IRREVERSIBLE. Permanently delete a hosting project: the live site, preview URLs, and custom domain stop serving (HTTP 410), every deployed and staged file is erased, forms stop accepting submissions, | typed |
get_upload_url | Get a presigned PUT URL for one site file. content_type is optional (inferred from extension). Use get_upload_urls_batch for multi-file sites, then confirm_upload after the PUT. | typed |
get_upload_urls_batch | Presign many site files at once (max 100). Prefer this over get_upload_url for multi-file sites. After PUTs, call confirm_uploads_batch, not confirm_upload. | typed |
confirm_upload | Record one staged file after the client PUT to the presigned URL from get_upload_url. Use confirm_uploads_batch when several files were uploaded. Does not publish the site — call deploy after confirms | typed |
confirm_uploads_batch | Confirm many uploads after get_upload_urls_batch PUTs. 200 body is { files, errors }. errors is always an array (empty on full success); retry only failed paths. Use confirm_upload for a single file. | typed |
list_files | List staged site files for a project (paths, types, sizes). Use get_file for one path's metadata; use delete_file to remove a path. Read-only; does not deploy. | typed |
get_file | Return metadata for one staged path (not file bytes). Use list_files to discover paths; use get_upload_url to replace content. Read-only. | typed |
delete_file | Remove one path from staging. Does not change the already-live deploy until the next deploy. Irreversible for that staged path; re-upload to restore. Use delete_form_submission for form PII, not this. | typed |
set_redirects | Write /_redirects (Netlify subset) into staging. Call deploy afterwards to publish. SPA History routing: /* /index.html 200. Exact files always win. Optional custom 404 is a separate /404.html up | typed |
put_site_data | Write /data/{name}.json on the live site without a deploy (Pro/Scale). Page JS keeps fetch("/data/{name}.json"). JSON must be an object or array, max 256 KB. Include the file in the next deploy or a r | incomplete |
get_site_brief | Private webmaster brief for this project (Pro/Scale). Markdown or JSON, max 64 KB. Not on the live origin. On session start call this then list_site_events. Empty is brief: null. Read-only. | typed |
put_site_brief | Write the private webmaster brief (Pro/Scale, max 64 KB). What the site is, which /data files matter, form ids, owner email, what not to touch. Empty string clears it. Survives deploys. | typed |
list_site_events | Webmaster inbox (Pro/Scale): form.submitted, collection.updated (agent vs owner_edit), check.completed, deploy.live. Default last 7 days, max 100. Pass since from the last session. Forms still email t | typed |
deploy | Publish the site. Verified accounts run quality checks; unverified accounts skip checks (checkRuns: 0) and still go live. POST returns quickly — poll get_deployment_status until live or failed. Do not | typed |
get_deployment_status | Poll publish state after deploy (queued, checking, promoting, live, failed). queued = waiting for a check runner (queuePosition shows your place); wait recommendedPollSeconds between polls. Omit deplo | typed |
get_preview_url | Return the public site URL. On Pro/Scale this is the per-deploy https://{suffix}--{ref}.novence.ai alias (last 5 successful deploys stay). On Free it is the live https://{suffix}.novence.ai host. Use | typed |
rollback | Re-promote a previous successful snapshot to https://{suffix}.novence.ai without a new upload. Pro/Scale only (HTTP 402 on Free). Omit deployment_id to restore the previous live deploy. Only the last | typed |
run_checks | Start a Lighthouse, a11y, and link check cycle on the latest deployment. Does not publish a new deploy — use deploy for that. Then poll get_checks_results (not get_deployment_status) until scores appe | typed |
get_checks_results | Read Lighthouse, a11y, and link results for a deployment. Omit deployment_id for the latest. Use run_checks to trigger a new cycle; use get_deployment_status for publish/promote state, not scores. | typed |
configure_custom_domain | Attach a custom domain. For site domains, enables apex+www. Default primary=www. Required DNS: CNAME www → fallback.novence.ai. Then do exactly one apex option: ALIAS/ANAME/CNAME-flattening @ → fallba | typed |
get_domain_status | Read DNS for the project's custom hostname after configure_custom_domain. Returns dns.www, dns.apex, and dns.next (a single next DNS step, or null when www CNAME is in place and apex has records). cus | typed |
create_form | Create a Novence form on a project (optional — sites may use Formspree/Web3forms instead). Returns submit URLs for edge + public API. | incomplete |
list_forms | List Novence forms on a project (ids, slugs, status). Use update_form to change one; use list_form_submissions to read leads. Not for third-party widgets. Read-only. | typed |
update_form | Patch an existing Novence form (name, slug, fields, notify_email, honeypot, active|disabled). Partial update: omitted fields stay unchanged. Use create_form for a new form; use list_forms to get form_ | incomplete |
list_form_submissions | List visitor submissions for one Novence form (paginated). Use delete_form_submission to remove PII. Not for update_form schema changes. Read-only. | typed |
delete_form_submission | Permanently delete one form submission (PII). Does not disable the form — use update_form status=disabled. Irreversible. | typed |
get_quotas_and_usage | Account-level plan limits and current consumption (projects, storage, deploys, bandwidth). Use get_project_usage for one site; use get_account for profile plus quotas together. Read-only snapshot, not | typed |
get_project_usage | Per-project usage (storage, deploys, check minutes, bandwidth, forms). Bandwidth is live from edge-served bytes. Use get_quotas_and_usage for account totals; use get_project_analytics for pageviews. R | typed |
get_project_analytics | Cookieless edge analytics for a hosted site: pageviews, 404s, top pages, referrers, and countries. Off by default. Enable with update_project_settings analytics_enabled=true. Default last 7 days (max | typed |
get_account | Full account snapshot: profile, subscription, quotas, usage, projects. Use get_quotas_and_usage for limits only; use get_account_console_kit to render a local HTML console. Read-only. | typed |
create_account_session | Mint a short-lived mgmt_ token for a local HTML console (account:read, billing:portal, project:members). Never put nv_ keys in HTML. | typed |
create_api_key | Mint an extra labelled nv_ key (e.g. ci, laptop) that keeps working when reissue_key replaces the primary key. Max 10 named keys; cannot exceed the calling key's permissions; the owner is emailed. The | typed |
get_account_console_kit | JSON kit to write a local novence-console.html: snapshot, HTML template (replace the /*NOVENCE_INJECT*/ marker), and session. With an nv_ key, session.token is a fresh 30-minute mgmt_ token — do not l | typed |
invite_project_member | Invite a collaborator by email. Requires Pro/Scale on the project owner. Only the owner can invite as admin. Creates a new project on the caller's account if you use create_project instead — pass proj | typed |
list_project_members | List members and pending invites for a project. Use invite_project_member to add; use revoke_project_invite for pending tokens; use remove_project_member for accepted collaborators. Read-only. | typed |
update_project_member | Change a collaborator's role. Only the owner can grant or demote admin. Use remove_project_member to revoke access entirely. Does not affect pending invites — use revoke_project_invite for those. | typed |
remove_project_member | Remove an accepted collaborator and revoke their project API keys. Owner-only for admins. For a pending invite, use revoke_project_invite instead. Irreversible; they must be invited again. | typed |
revoke_project_invite | Cancel a pending invite so the token no longer works. Does not remove someone who already accepted — use remove_project_member for that. Irreversible for that invite_id; send a new invite_project_memb | typed |
leave_project | Leave a project you were invited to. Owners cannot leave — transfer or stay. Revokes your project keys. Use remove_project_member if you are the owner removing someone else. | typed |
accept_project_invite | Accept an invite token (from email or invite_project_member in local/dev). Unverified invitees must pass otp. Returns a project-scoped nv_ key once — never email it. Collaborating uses this project_id | typed |
Badge
Paste into your README. It updates on every verification.
[](https://app.agent-xm.com/a/ai-novence-mcp)
Was this agent useful?
Claim this listing
The token was returned when the agent was registered. No token? Prove the domain or repository instead.