{"apiVersion":"v1","directorySlug":"aspicio-api-mcp-817ff633b2","title":"FrontSail","description":"Free browser apps built by FrontSail: the Aspicio DXF viewer, a QR code generator, and more. From the team behind FrontSail AI, the virtual operations assistant, and FrontSail Sites, websites for trades that get found.","pageUrl":"https://www.mcpbundles.com/skills/aspicio-api-mcp-817ff633b2","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://aspicio-api.frontsail.app/mcp","hostedMcpUrl":null,"toolCount":8,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"app.frontsail/aspicio-api-mcp-817ff633b2","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"describe_dxf","description":"Return a structured JSON summary of a DXF drawing — units, bounding box, layers (with the color actually drawn), per-type entity counts, and any skipped/unsupported types. Use this to answer structural questions (what layers exist, how many parts, what size, is it to scale) without rendering an image. For a PDF use describe_pdf; if you do not know the format, use describe_doc. Covers the whole drawing by default, including every page of a multi-page PDF; pass `space` (a name from the reply's `sp","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["source"],"properties":{"space":{"type":"string"},"source":{"type":"string"}}},"title":"Describe a DXF drawing","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"describe_dxf","displayName":"Describe a DXF drawing"},{"name":"render_dxf","description":"Render a DXF drawing to a PNG image you can look at. Use this to answer visual questions (what does it look like, where is a feature, does it look right) — it returns an image, not text. For structural facts, prefer describe_dxf. For a PDF use render_pdf; if you do not know the format, use render_doc. Renders the first page/sheet by default; pass `space` (a name from a describe reply's `spaces`) to render another one. Some chat UIs do not display the returned image to the user: for URL sources t","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["source"],"properties":{"space":{"type":"string"},"width":{"type":"integer","maximum":4000,"minimum":64},"source":{"type":"string"}}},"title":"Render a DXF to an image","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"render_dxf","displayName":"Render a DXF to an image"},{"name":"describe_pdf","description":"Return a structured JSON summary of a PDF drawing — units (points), bounding box, layers, per-type entity counts, the text it contains, and what was skipped (images, shadings, transparency). Use this for structural questions about a PDF without rendering it. For a DXF use describe_dxf; if you do not know the format, use describe_doc. Covers the whole drawing by default, including every page of a multi-page PDF; pass `space` (a name from the reply's `spaces`) to scope it to one page or sheet. Whe","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["source"],"properties":{"space":{"type":"string"},"source":{"type":"string"}}},"title":"Describe a PDF drawing","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"describe_pdf","displayName":"Describe a PDF drawing"},{"name":"render_pdf","description":"Render a PDF drawing's vector content to a PNG you can look at. Images, shadings, and transparency are not drawn — they are reported by describe_pdf — so this shows line work and text, not a page facsimile. For a DXF use render_dxf; if you do not know the format, use render_doc. Renders the first page/sheet by default; pass `space` (a name from a describe reply's `spaces`) to render another one. Some chat UIs do not display the returned image to the user: for URL sources the result also includes","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["source"],"properties":{"space":{"type":"string"},"width":{"type":"integer","maximum":4000,"minimum":64},"source":{"type":"string"}}},"title":"Render a PDF to an image","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"render_pdf","displayName":"Render a PDF to an image"},{"name":"describe_doc","description":"Return a structured JSON summary of a drawing in any supported format (DXF or PDF), detected from its bytes rather than its name. Use this when you do not know which format you have; the reply names the format that was read. Covers the whole drawing by default, including every page of a multi-page PDF; pass `space` (a name from the reply's `spaces`) to scope it to one page or sheet. When the user wants to see or explore the drawing themselves, prefer view_dxf (interactive viewer) — if your platf","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["source"],"properties":{"space":{"type":"string"},"source":{"type":"string"}}},"title":"Describe a drawing of any supported format","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"describe_doc","displayName":"Describe a drawing of any supported format"},{"name":"render_doc","description":"Render a drawing in any supported format (DXF or PDF) to a PNG you can look at, detected from its bytes rather than its name. Use this when you do not know which format you have. Renders the first page/sheet by default; pass `space` (a name from a describe reply's `spaces`) to render another one. Some chat UIs do not display the returned image to the user: for URL sources the result also includes a direct image link — show it (e.g. as a markdown image) when they need to see the render. When the","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["source"],"properties":{"space":{"type":"string"},"width":{"type":"integer","maximum":4000,"minimum":64},"source":{"type":"string"}}},"title":"Render a drawing of any supported format","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"render_doc","displayName":"Render a drawing of any supported format"},{"name":"view_dxf","description":"Open an interactive viewer the user can pan, zoom, and toggle layers in (renders in-chat on MCP Apps-capable hosts). Reads DXF and vector PDF; for a PDF it shows line work and text rather than a page facsimile, so images, shadings, and transparency are absent by design. Use this when the user wants to see or explore the drawing themselves; for your own analysis use a describe_* tool (facts) or a render_* tool (image). The viewer shows only the drawing from this call. Delivery is handled by the w","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["source"],"properties":{"source":{"type":"string"},"allow_file_open":{"type":"boolean"}}},"title":"Open a drawing in the interactive viewer","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"view_dxf","displayName":"Open a drawing in the interactive viewer"},{"name":"load_dxf_for_viewer","description":"Internal: returns DXF bytes (base64) for the in-chat viewer. Called by the widget, not the model.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["source"],"properties":{"length":{"type":"integer","maximum":4000000,"minimum":1},"offset":{"type":"integer","maximum":9007199254740991,"minimum":0},"source":{"type":"string"}}},"title":"Load a DXF for the viewer widget","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"load_dxf_for_viewer","displayName":"Load a DXF for the viewer widget"}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=FrontSail&config=eyJ1cmwiOiAiaHR0cHM6Ly9hc3BpY2lvLWFwaS5mcm9udHNhaWwuYXBwL21jcCJ9"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22FrontSail%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Faspicio-api.frontsail.app%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22FrontSail%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Faspicio-api.frontsail.app%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=FrontSail&connectorUrl=https%3A%2F%2Faspicio-api.frontsail.app%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"FrontSail\" --url \"https://aspicio-api.frontsail.app/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/aspicio-api-mcp-817ff633b2","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/aspicio-api-mcp-817ff633b2/tools/{tool}","mcpServerUrl":"https://aspicio-api.frontsail.app/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/aspicio-api-mcp-817ff633b2?live=1"}