{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_sjey8a3bjq7z","handle":"foxform","url":"https://wellknown.network/agents/foxform","links":{"self":"https://wellknown.network/agents/foxform/record.json","html":"https://wellknown.network/agents/foxform","markdown":"https://wellknown.network/agents/foxform/record.md","api":"https://wellknown.network/api/v1/agents/foxform","status":"https://wellknown.network/api/v1/agents/foxform/status","claim":"https://wellknown.network/agents/foxform/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/foxform/claim.json","badge":"https://wellknown.network/agents/foxform/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/foxform/history","tools":"https://wellknown.network/api/v1/agents/foxform/tools"},"ard":{"identifier":"urn:air:mcp.foxform.app:server:foxform","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"FoxForm","summary":"Build, publish and read scored forms and quizzes where the score picks the next screen.","description":"Build, publish and read scored forms and quizzes where the score picks the next screen.","publisher":{"name":"vitorrocha-panda","url":null},"homepage":"https://foxform.app","repository":null,"version":"1.0.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://mcp.foxform.app/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-08-29T20:34:42.337043Z","publishedAt":"2026-08-29T20:34:42.337043Z","registryName":"io.github.vitorrocha-panda/foxform"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[],"categories":[],"language":"en"},"observed":{"status":"live","statusReason":"Responded 5h ago.","lastOkAt":"2026-10-10T17:30:15.562Z","lastProbedAt":"2026-10-10T17:30:15.562Z","statusComputedAt":"2026-10-10T17:30:57.533Z","reliability30d":{"probes":112,"successRate":1,"p50Ms":156,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":109,"ok":109,"authBoundaryOk":0,"serviceOk":109,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-10T17:30:15.562Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":188,"error":null,"detail":{"tools":[{"name":"foxform_list_forms","description":"List the forms owned by the authenticated FoxForm account, newest first.\n\nArgs:\n  - page (number): 1-based page number (default 1)\n  - limit (number): page size"},{"name":"foxform_get_form","description":"Fetch a single form by ID, including its full question list, per-screen conditional logic and settings.\n\nArgs:\n  - form_id (string): the form's ID (from foxform"},{"name":"foxform_list_responses","description":"List submitted responses for a form, newest first.\n\nArgs:\n  - form_id (string): the form's ID\n  - page (number): 1-based page (default 1)\n  - limit (number): pa"},{"name":"foxform_get_response","description":"Fetch one response by its ID (from foxform_list_responses).\n\nArgs:\n  - response_id (string)\n  - response_format ('markdown' | 'json')\n\nReturns the full response"},{"name":"foxform_get_form_analytics","description":"Aggregated analytics for a form: overview KPIs (total responses, form views, response rate, avg response time), the responses-over-time timeline, and per-questi"},{"name":"foxform_export_responses","description":"Export all responses for a form as CSV text (one row per response, columns = questions). Large exports are truncated — use foxform_list_responses with paginatio"},{"name":"foxform_create_form","description":"Create a new form, including per-screen conditional logic. Requires a WRITE-scoped API key.\n\nArgs:\n  - title (string): form title (required)\n  - description (st"},{"name":"foxform_update_form","description":"Update an existing form's fields, including each screen's conditional logic (branching). Requires a WRITE-scoped API key. Only the fields you pass are changed.\n"},{"name":"foxform_publish_form","description":"Publish a form so it's live at its public URL and can accept responses. Requires a WRITE-scoped API key.\n\nArgs:\n  - form_id (string)\n\nReturns: { form, public_ur"},{"name":"foxform_unpublish_form","description":"Unpublish a form (takes it offline; stops accepting responses). Requires a WRITE-scoped API key.\n\nArgs:\n  - form_id (string)\n\nReturns: a confirmation message."}],"toolCount":10,"toolsHash":"890cde35082d562f6bdd6b3ce2a0817528cc9f8fc51fa642dbda0a65422bdcea","serverName":"foxform-mcp-server","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T11:25:19.417Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":125,"error":null,"detail":{"tools":[{"name":"foxform_list_forms","description":"List the forms owned by the authenticated FoxForm account, newest first.\n\nArgs:\n  - page (number): 1-based page number (default 1)\n  - limit (number): page size"},{"name":"foxform_get_form","description":"Fetch a single form by ID, including its full question list, per-screen conditional logic and settings.\n\nArgs:\n  - form_id (string): the form's ID (from foxform"},{"name":"foxform_list_responses","description":"List submitted responses for a form, newest first.\n\nArgs:\n  - form_id (string): the form's ID\n  - page (number): 1-based page (default 1)\n  - limit (number): pa"},{"name":"foxform_get_response","description":"Fetch one response by its ID (from foxform_list_responses).\n\nArgs:\n  - response_id (string)\n  - response_format ('markdown' | 'json')\n\nReturns the full response"},{"name":"foxform_get_form_analytics","description":"Aggregated analytics for a form: overview KPIs (total responses, form views, response rate, avg response time), the responses-over-time timeline, and per-questi"},{"name":"foxform_export_responses","description":"Export all responses for a form as CSV text (one row per response, columns = questions). Large exports are truncated — use foxform_list_responses with paginatio"},{"name":"foxform_create_form","description":"Create a new form, including per-screen conditional logic. Requires a WRITE-scoped API key.\n\nArgs:\n  - title (string): form title (required)\n  - description (st"},{"name":"foxform_update_form","description":"Update an existing form's fields, including each screen's conditional logic (branching). Requires a WRITE-scoped API key. Only the fields you pass are changed.\n"},{"name":"foxform_publish_form","description":"Publish a form so it's live at its public URL and can accept responses. Requires a WRITE-scoped API key.\n\nArgs:\n  - form_id (string)\n\nReturns: { form, public_ur"},{"name":"foxform_unpublish_form","description":"Unpublish a form (takes it offline; stops accepting responses). Requires a WRITE-scoped API key.\n\nArgs:\n  - form_id (string)\n\nReturns: a confirmation message."}],"toolCount":10,"toolsHash":"61dde6d448be32d1e1b5f1bac5a966825ec570eb82f930e06d3536134ecb2b22","serverName":"foxform-mcp-server","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T05:28:38.965Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":160,"error":null,"detail":{"tools":[{"name":"foxform_list_forms","description":"List the forms owned by the authenticated FoxForm account, newest first.\n\nArgs:\n  - page (number): 1-based page number (default 1)\n  - limit (number): page size"},{"name":"foxform_get_form","description":"Fetch a single form by ID, including its full question list, per-screen conditional logic and settings.\n\nArgs:\n  - form_id (string): the form's ID (from foxform"},{"name":"foxform_list_responses","description":"List submitted responses for a form, newest first.\n\nArgs:\n  - form_id (string): the form's ID\n  - page (number): 1-based page (default 1)\n  - limit (number): pa"},{"name":"foxform_get_response","description":"Fetch one response by its ID (from foxform_list_responses).\n\nArgs:\n  - response_id (string)\n  - response_format ('markdown' | 'json')\n\nReturns the full response"},{"name":"foxform_get_form_analytics","description":"Aggregated analytics for a form: overview KPIs (total responses, form views, response rate, avg response time), the responses-over-time timeline, and per-questi"},{"name":"foxform_export_responses","description":"Export all responses for a form as CSV text (one row per response, columns = questions). Large exports are truncated — use foxform_list_responses with paginatio"},{"name":"foxform_create_form","description":"Create a new form, including per-screen conditional logic. Requires a WRITE-scoped API key.\n\nArgs:\n  - title (string): form title (required)\n  - description (st"},{"name":"foxform_update_form","description":"Update an existing form's fields, including each screen's conditional logic (branching). Requires a WRITE-scoped API key. Only the fields you pass are changed.\n"},{"name":"foxform_publish_form","description":"Publish a form so it's live at its public URL and can accept responses. Requires a WRITE-scoped API key.\n\nArgs:\n  - form_id (string)\n\nReturns: { form, public_ur"},{"name":"foxform_unpublish_form","description":"Unpublish a form (takes it offline; stops accepting responses). Requires a WRITE-scoped API key.\n\nArgs:\n  - form_id (string)\n\nReturns: a confirmation message."}],"toolCount":10,"toolsHash":"61dde6d448be32d1e1b5f1bac5a966825ec570eb82f930e06d3536134ecb2b22","serverName":"foxform-mcp-server","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T22:26:51.931Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":142,"error":null,"detail":{"tools":[{"name":"foxform_list_forms","description":"List the forms owned by the authenticated FoxForm account, newest first.\n\nArgs:\n  - page (number): 1-based page number (default 1)\n  - limit (number): page size"},{"name":"foxform_get_form","description":"Fetch a single form by ID, including its full question list, per-screen conditional logic and settings.\n\nArgs:\n  - form_id (string): the form's ID (from foxform"},{"name":"foxform_list_responses","description":"List submitted responses for a form, newest first.\n\nArgs:\n  - form_id (string): the form's ID\n  - page (number): 1-based page (default 1)\n  - limit (number): pa"},{"name":"foxform_get_response","description":"Fetch one response by its ID (from foxform_list_responses).\n\nArgs:\n  - response_id (string)\n  - response_format ('markdown' | 'json')\n\nReturns the full response"},{"name":"foxform_get_form_analytics","description":"Aggregated analytics for a form: overview KPIs (total responses, form views, response rate, avg response time), the responses-over-time timeline, and per-questi"},{"name":"foxform_export_responses","description":"Export all responses for a form as CSV text (one row per response, columns = questions). Large exports are truncated — use foxform_list_responses with paginatio"},{"name":"foxform_create_form","description":"Create a new form, including per-screen conditional logic. Requires a WRITE-scoped API key.\n\nArgs:\n  - title (string): form title (required)\n  - description (st"},{"name":"foxform_update_form","description":"Update an existing form's fields, including each screen's conditional logic (branching). Requires a WRITE-scoped API key. Only the fields you pass are changed.\n"},{"name":"foxform_publish_form","description":"Publish a form so it's live at its public URL and can accept responses. Requires a WRITE-scoped API key.\n\nArgs:\n  - form_id (string)\n\nReturns: { form, public_ur"},{"name":"foxform_unpublish_form","description":"Unpublish a form (takes it offline; stops accepting responses). Requires a WRITE-scoped API key.\n\nArgs:\n  - form_id (string)\n\nReturns: a confirmation message."}],"toolCount":10,"toolsHash":"61dde6d448be32d1e1b5f1bac5a966825ec570eb82f930e06d3536134ecb2b22","serverName":"foxform-mcp-server","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T15:33:14.209Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":245,"error":null,"detail":{"tools":[{"name":"foxform_list_forms","description":"List the forms owned by the authenticated FoxForm account, newest first.\n\nArgs:\n  - page (number): 1-based page number (default 1)\n  - limit (number): page size"},{"name":"foxform_get_form","description":"Fetch a single form by ID, including its full question list, per-screen conditional logic and settings.\n\nArgs:\n  - form_id (string): the form's ID (from foxform"},{"name":"foxform_list_responses","description":"List submitted responses for a form, newest first.\n\nArgs:\n  - form_id (string): the form's ID\n  - page (number): 1-based page (default 1)\n  - limit (number): pa"},{"name":"foxform_get_response","description":"Fetch one response by its ID (from foxform_list_responses).\n\nArgs:\n  - response_id (string)\n  - response_format ('markdown' | 'json')\n\nReturns the full response"},{"name":"foxform_get_form_analytics","description":"Aggregated analytics for a form: overview KPIs (total responses, form views, response rate, avg response time), the responses-over-time timeline, and per-questi"},{"name":"foxform_export_responses","description":"Export all responses for a form as CSV text (one row per response, columns = questions). Large exports are truncated — use foxform_list_responses with paginatio"},{"name":"foxform_create_form","description":"Create a new form, including per-screen conditional logic. Requires a WRITE-scoped API key.\n\nArgs:\n  - title (string): form title (required)\n  - description (st"},{"name":"foxform_update_form","description":"Update an existing form's fields, including each screen's conditional logic (branching). Requires a WRITE-scoped API key. Only the fields you pass are changed.\n"},{"name":"foxform_publish_form","description":"Publish a form so it's live at its public URL and can accept responses. Requires a WRITE-scoped API key.\n\nArgs:\n  - form_id (string)\n\nReturns: { form, public_ur"},{"name":"foxform_unpublish_form","description":"Unpublish a form (takes it offline; stops accepting responses). Requires a WRITE-scoped API key.\n\nArgs:\n  - form_id (string)\n\nReturns: a confirmation message."}],"toolCount":10,"toolsHash":"61dde6d448be32d1e1b5f1bac5a966825ec570eb82f930e06d3536134ecb2b22","serverName":"foxform-mcp-server","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T09:27:10.288Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":160,"error":null,"detail":{"tools":[{"name":"foxform_list_forms","description":"List the forms owned by the authenticated FoxForm account, newest first.\n\nArgs:\n  - page (number): 1-based page number (default 1)\n  - limit (number): page size"},{"name":"foxform_get_form","description":"Fetch a single form by ID, including its full question list, per-screen conditional logic and settings.\n\nArgs:\n  - form_id (string): the form's ID (from foxform"},{"name":"foxform_list_responses","description":"List submitted responses for a form, newest first.\n\nArgs:\n  - form_id (string): the form's ID\n  - page (number): 1-based page (default 1)\n  - limit (number): pa"},{"name":"foxform_get_response","description":"Fetch one response by its ID (from foxform_list_responses).\n\nArgs:\n  - response_id (string)\n  - response_format ('markdown' | 'json')\n\nReturns the full response"},{"name":"foxform_get_form_analytics","description":"Aggregated analytics for a form: overview KPIs (total responses, form views, response rate, avg response time), the responses-over-time timeline, and per-questi"},{"name":"foxform_export_responses","description":"Export all responses for a form as CSV text (one row per response, columns = questions). Large exports are truncated — use foxform_list_responses with paginatio"},{"name":"foxform_create_form","description":"Create a new form, including per-screen conditional logic. Requires a WRITE-scoped API key.\n\nArgs:\n  - title (string): form title (required)\n  - description (st"},{"name":"foxform_update_form","description":"Update an existing form's fields, including each screen's conditional logic (branching). Requires a WRITE-scoped API key. Only the fields you pass are changed.\n"},{"name":"foxform_publish_form","description":"Publish a form so it's live at its public URL and can accept responses. Requires a WRITE-scoped API key.\n\nArgs:\n  - form_id (string)\n\nReturns: { form, public_ur"},{"name":"foxform_unpublish_form","description":"Unpublish a form (takes it offline; stops accepting responses). Requires a WRITE-scoped API key.\n\nArgs:\n  - form_id (string)\n\nReturns: a confirmation message."}],"toolCount":10,"toolsHash":"61dde6d448be32d1e1b5f1bac5a966825ec570eb82f930e06d3536134ecb2b22","serverName":"foxform-mcp-server","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T03:23:39.399Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":108,"error":null,"detail":{"tools":[{"name":"foxform_list_forms","description":"List the forms owned by the authenticated FoxForm account, newest first.\n\nArgs:\n  - page (number): 1-based page number (default 1)\n  - limit (number): page size"},{"name":"foxform_get_form","description":"Fetch a single form by ID, including its full question list, per-screen conditional logic and settings.\n\nArgs:\n  - form_id (string): the form's ID (from foxform"},{"name":"foxform_list_responses","description":"List submitted responses for a form, newest first.\n\nArgs:\n  - form_id (string): the form's ID\n  - page (number): 1-based page (default 1)\n  - limit (number): pa"},{"name":"foxform_get_response","description":"Fetch one response by its ID (from foxform_list_responses).\n\nArgs:\n  - response_id (string)\n  - response_format ('markdown' | 'json')\n\nReturns the full response"},{"name":"foxform_get_form_analytics","description":"Aggregated analytics for a form: overview KPIs (total responses, form views, response rate, avg response time), the responses-over-time timeline, and per-questi"},{"name":"foxform_export_responses","description":"Export all responses for a form as CSV text (one row per response, columns = questions). Large exports are truncated — use foxform_list_responses with paginatio"},{"name":"foxform_create_form","description":"Create a new form, including per-screen conditional logic. Requires a WRITE-scoped API key.\n\nArgs:\n  - title (string): form title (required)\n  - description (st"},{"name":"foxform_update_form","description":"Update an existing form's fields, including each screen's conditional logic (branching). Requires a WRITE-scoped API key. Only the fields you pass are changed.\n"},{"name":"foxform_publish_form","description":"Publish a form so it's live at its public URL and can accept responses. Requires a WRITE-scoped API key.\n\nArgs:\n  - form_id (string)\n\nReturns: { form, public_ur"},{"name":"foxform_unpublish_form","description":"Unpublish a form (takes it offline; stops accepting responses). Requires a WRITE-scoped API key.\n\nArgs:\n  - form_id (string)\n\nReturns: a confirmation message."}],"toolCount":10,"toolsHash":"61dde6d448be32d1e1b5f1bac5a966825ec570eb82f930e06d3536134ecb2b22","serverName":"foxform-mcp-server","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T20:24:31.833Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":123,"error":null,"detail":{"tools":[{"name":"foxform_list_forms","description":"List the forms owned by the authenticated FoxForm account, newest first.\n\nArgs:\n  - page (number): 1-based page number (default 1)\n  - limit (number): page size"},{"name":"foxform_get_form","description":"Fetch a single form by ID, including its full question list, per-screen conditional logic and settings.\n\nArgs:\n  - form_id (string): the form's ID (from foxform"},{"name":"foxform_list_responses","description":"List submitted responses for a form, newest first.\n\nArgs:\n  - form_id (string): the form's ID\n  - page (number): 1-based page (default 1)\n  - limit (number): pa"},{"name":"foxform_get_response","description":"Fetch one response by its ID (from foxform_list_responses).\n\nArgs:\n  - response_id (string)\n  - response_format ('markdown' | 'json')\n\nReturns the full response"},{"name":"foxform_get_form_analytics","description":"Aggregated analytics for a form: overview KPIs (total responses, form views, response rate, avg response time), the responses-over-time timeline, and per-questi"},{"name":"foxform_export_responses","description":"Export all responses for a form as CSV text (one row per response, columns = questions). Large exports are truncated — use foxform_list_responses with paginatio"},{"name":"foxform_create_form","description":"Create a new form, including per-screen conditional logic. Requires a WRITE-scoped API key.\n\nArgs:\n  - title (string): form title (required)\n  - description (st"},{"name":"foxform_update_form","description":"Update an existing form's fields, including each screen's conditional logic (branching). Requires a WRITE-scoped API key. Only the fields you pass are changed.\n"},{"name":"foxform_publish_form","description":"Publish a form so it's live at its public URL and can accept responses. Requires a WRITE-scoped API key.\n\nArgs:\n  - form_id (string)\n\nReturns: { form, public_ur"},{"name":"foxform_unpublish_form","description":"Unpublish a form (takes it offline; stops accepting responses). Requires a WRITE-scoped API key.\n\nArgs:\n  - form_id (string)\n\nReturns: a confirmation message."}],"toolCount":10,"toolsHash":"61dde6d448be32d1e1b5f1bac5a966825ec570eb82f930e06d3536134ecb2b22","serverName":"foxform-mcp-server","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T13:23:44.842Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":125,"error":null,"detail":{"tools":[{"name":"foxform_list_forms","description":"List the forms owned by the authenticated FoxForm account, newest first.\n\nArgs:\n  - page (number): 1-based page number (default 1)\n  - limit (number): page size"},{"name":"foxform_get_form","description":"Fetch a single form by ID, including its full question list, per-screen conditional logic and settings.\n\nArgs:\n  - form_id (string): the form's ID (from foxform"},{"name":"foxform_list_responses","description":"List submitted responses for a form, newest first.\n\nArgs:\n  - form_id (string): the form's ID\n  - page (number): 1-based page (default 1)\n  - limit (number): pa"},{"name":"foxform_get_response","description":"Fetch one response by its ID (from foxform_list_responses).\n\nArgs:\n  - response_id (string)\n  - response_format ('markdown' | 'json')\n\nReturns the full response"},{"name":"foxform_get_form_analytics","description":"Aggregated analytics for a form: overview KPIs (total responses, form views, response rate, avg response time), the responses-over-time timeline, and per-questi"},{"name":"foxform_export_responses","description":"Export all responses for a form as CSV text (one row per response, columns = questions). Large exports are truncated — use foxform_list_responses with paginatio"},{"name":"foxform_create_form","description":"Create a new form, including per-screen conditional logic. Requires a WRITE-scoped API key.\n\nArgs:\n  - title (string): form title (required)\n  - description (st"},{"name":"foxform_update_form","description":"Update an existing form's fields, including each screen's conditional logic (branching). Requires a WRITE-scoped API key. Only the fields you pass are changed.\n"},{"name":"foxform_publish_form","description":"Publish a form so it's live at its public URL and can accept responses. Requires a WRITE-scoped API key.\n\nArgs:\n  - form_id (string)\n\nReturns: { form, public_ur"},{"name":"foxform_unpublish_form","description":"Unpublish a form (takes it offline; stops accepting responses). Requires a WRITE-scoped API key.\n\nArgs:\n  - form_id (string)\n\nReturns: a confirmation message."}],"toolCount":10,"toolsHash":"61dde6d448be32d1e1b5f1bac5a966825ec570eb82f930e06d3536134ecb2b22","serverName":"foxform-mcp-server","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T07:26:22.063Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":142,"error":null,"detail":{"tools":[{"name":"foxform_list_forms","description":"List the forms owned by the authenticated FoxForm account, newest first.\n\nArgs:\n  - page (number): 1-based page number (default 1)\n  - limit (number): page size"},{"name":"foxform_get_form","description":"Fetch a single form by ID, including its full question list, per-screen conditional logic and settings.\n\nArgs:\n  - form_id (string): the form's ID (from foxform"},{"name":"foxform_list_responses","description":"List submitted responses for a form, newest first.\n\nArgs:\n  - form_id (string): the form's ID\n  - page (number): 1-based page (default 1)\n  - limit (number): pa"},{"name":"foxform_get_response","description":"Fetch one response by its ID (from foxform_list_responses).\n\nArgs:\n  - response_id (string)\n  - response_format ('markdown' | 'json')\n\nReturns the full response"},{"name":"foxform_get_form_analytics","description":"Aggregated analytics for a form: overview KPIs (total responses, form views, response rate, avg response time), the responses-over-time timeline, and per-questi"},{"name":"foxform_export_responses","description":"Export all responses for a form as CSV text (one row per response, columns = questions). Large exports are truncated — use foxform_list_responses with paginatio"},{"name":"foxform_create_form","description":"Create a new form, including per-screen conditional logic. Requires a WRITE-scoped API key.\n\nArgs:\n  - title (string): form title (required)\n  - description (st"},{"name":"foxform_update_form","description":"Update an existing form's fields, including each screen's conditional logic (branching). Requires a WRITE-scoped API key. Only the fields you pass are changed.\n"},{"name":"foxform_publish_form","description":"Publish a form so it's live at its public URL and can accept responses. Requires a WRITE-scoped API key.\n\nArgs:\n  - form_id (string)\n\nReturns: { form, public_ur"},{"name":"foxform_unpublish_form","description":"Unpublish a form (takes it offline; stops accepting responses). Requires a WRITE-scoped API key.\n\nArgs:\n  - form_id (string)\n\nReturns: a confirmation message."}],"toolCount":10,"toolsHash":"61dde6d448be32d1e1b5f1bac5a966825ec570eb82f930e06d3536134ecb2b22","serverName":"foxform-mcp-server","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"foxform_list_forms","description":"List the forms owned by the authenticated FoxForm account, newest first.\n\nArgs:\n  - page (number): 1-based page number (default 1)\n  - limit (number): page size"},{"name":"foxform_get_form","description":"Fetch a single form by ID, including its full question list, per-screen conditional logic and settings.\n\nArgs:\n  - form_id (string): the form's ID (from foxform"},{"name":"foxform_list_responses","description":"List submitted responses for a form, newest first.\n\nArgs:\n  - form_id (string): the form's ID\n  - page (number): 1-based page (default 1)\n  - limit (number): pa"},{"name":"foxform_get_response","description":"Fetch one response by its ID (from foxform_list_responses).\n\nArgs:\n  - response_id (string)\n  - response_format ('markdown' | 'json')\n\nReturns the full response"},{"name":"foxform_get_form_analytics","description":"Aggregated analytics for a form: overview KPIs (total responses, form views, response rate, avg response time), the responses-over-time timeline, and per-questi"},{"name":"foxform_export_responses","description":"Export all responses for a form as CSV text (one row per response, columns = questions). Large exports are truncated — use foxform_list_responses with paginatio"},{"name":"foxform_create_form","description":"Create a new form, including per-screen conditional logic. Requires a WRITE-scoped API key.\n\nArgs:\n  - title (string): form title (required)\n  - description (st"},{"name":"foxform_update_form","description":"Update an existing form's fields, including each screen's conditional logic (branching). Requires a WRITE-scoped API key. Only the fields you pass are changed.\n"},{"name":"foxform_publish_form","description":"Publish a form so it's live at its public URL and can accept responses. Requires a WRITE-scoped API key.\n\nArgs:\n  - form_id (string)\n\nReturns: { form, public_ur"},{"name":"foxform_unpublish_form","description":"Unpublish a form (takes it offline; stops accepting responses). Requires a WRITE-scoped API key.\n\nArgs:\n  - form_id (string)\n\nReturns: a confirmation message."}],"package":null,"toolSurface":{"id":"ts_6e5gzd3j6x2n","endpointId":"ep_befader253yh","hash":"890cde35082d562f6bdd6b3ce2a0817528cc9f8fc51fa642dbda0a65422bdcea","toolCount":10,"serverName":"foxform-mcp-server","serverVersion":"1.0.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-10T17:30:16.032Z","lastSeenAt":"2026-10-10T17:30:16.032Z","observations":1,"toolNames":["foxform_list_forms","foxform_get_form","foxform_list_responses","foxform_get_response","foxform_get_form_analytics","foxform_export_responses","foxform_create_form","foxform_update_form","foxform_publish_form","foxform_unpublish_form"],"distinctSurfaces":3},"endpointFacts":[{"id":"ep_befader253yh","url":"https://mcp.foxform.app/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-07T17:28:29.275Z","auth":{"observedAt":"2026-10-07T17:28:29.387Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-07T17:28:29.557Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"mcp.foxform.app","issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validFrom":"2026-06-22T00:00:00.000Z","validTo":"2027-01-05T23:59:59.000Z","daysToExpiry":87,"sanCount":2,"fingerprint256":"55:AE:E4:AC:33:A2:67:86:41:32:DA:B9:AE:93:85:C0:DB:69:F7:61:F1:83:78:13:85:0C:ED:EA:21:D2:80:57"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"io.github.vitorrocha-panda/foxform","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.vitorrocha-panda%2Ffoxform","firstSeenAt":"2026-09-07T05:18:22.819Z","fetchedAt":"2026-10-08T13:18:41.105Z","normalizedAt":"2026-10-08T13:18:41.105Z"}]},"firstSeenAt":"2026-09-07T05:18:22.819Z","updatedAt":"2026-10-10T17:32:06.922Z"}