ctlsurf · OpenAPI Overlay 1.0.0

ctlsurf API - API Evangelist enhancements

84 actions 84 updates update extends ../openapi/_original/ctlsurf-com-openapi.yml
Derived by API Evangelist Built from the contracts ctlsurf publishes. ctlsurf did not publish this file.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-mcp-toolsx-mcp-server

Targets 84 · first 16 shown; the file carries all of them

$.info
$.paths['/api/cards/{card_id}/attachments'].post
$.paths['/api/cards/{card_id}/events'].post
$.paths['/api/cards/{card_id}/links'].post
$.paths['/api/datastore/{block_id}/rows'].post
$.paths['/api/folders/{folder_id}/archive'].post
$.paths['/api/folders/groups/archive'].post
$.paths['/api/dashboards/{dashboard_id}/backfill'].post
$.paths['/api/files/confirm-upload'].post
$.paths['/api/blocks/page/{page_id}'].post
$.paths['/api/dashboards/{dashboard_id}/cards'].post
$.paths['/api/graphs'].post
$.paths['/api/datastore/{block_id}/ingest-url'].post
$.paths['/api/pages'].post
$.paths['/api/dashboards/{dashboard_id}/pins'].post
$.paths['/api/skills'].post

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: ctlsurf API - API Evangelist enhancements
  version: 1.0.0
extends: ../openapi/_original/ctlsurf-com-openapi.yml
x-provenance:
  generated: '2026-11-04'
  method: derived
  source: mcp/ctlsurf-com-tool-crosswalk.yml
actions:
- target: $.info
  update:
    x-mcp-server:
      endpoint: https://app.ctlsurf.com/api/mcp
      transport: streamable-http
      auth: Bearer cpk_ API key
      server_card: https://app.ctlsurf.com/.well-known/mcp/server-card.json
      tool_reference: https://ctlsurf.com/api/docs/tools
- target: $.paths['/api/cards/{card_id}/attachments'].post
  update:
    x-mcp-tools:
    - attach_to_card
- target: $.paths['/api/cards/{card_id}/events'].post
  update:
    x-mcp-tools:
    - comment_on_card
- target: $.paths['/api/cards/{card_id}/links'].post
  update:
    x-mcp-tools:
    - link_card
- target: $.paths['/api/datastore/{block_id}/rows'].post
  update:
    x-mcp-tools:
    - add_row
- target: $.paths['/api/folders/{folder_id}/archive'].post
  update:
    x-mcp-tools:
    - archive_folder
- target: $.paths['/api/folders/groups/archive'].post
  update:
    x-mcp-tools:
    - archive_group
- target: $.paths['/api/dashboards/{dashboard_id}/backfill'].post
  update:
    x-mcp-tools:
    - backfill_dashboard
- target: $.paths['/api/files/confirm-upload'].post
  update:
    x-mcp-tools:
    - confirm_upload
- target: $.paths['/api/blocks/page/{page_id}'].post
  update:
    x-mcp-tools:
    - create_block
    - create_datastore
- target: $.paths['/api/dashboards/{dashboard_id}/cards'].post
  update:
    x-mcp-tools:
    - create_card
- target: $.paths['/api/graphs'].post
  update:
    x-mcp-tools:
    - create_graph
- target: $.paths['/api/datastore/{block_id}/ingest-url'].post
  update:
    x-mcp-tools:
    - get_datastore_ingest_url
- target: $.paths['/api/pages'].post
  update:
    x-mcp-tools:
    - create_page
- target: $.paths['/api/dashboards/{dashboard_id}/pins'].post
  update:
    x-mcp-tools:
    - pin_block_to_dashboard
- target: $.paths['/api/skills'].post
  update:
    x-mcp-tools:
    - create_skill
- target: $.paths['/api/tasks/page/{page_id}'].post
  update:
    x-mcp-tools:
    - add_ctlsurf_task_item
- target: $.paths['/api/dashboards/{dashboard_id}/summary'].get
  update:
    x-mcp-tools:
    - get_dashboard_summary
- target: $.paths['/api/blocks/{block_id}'].delete
  update:
    x-mcp-tools:
    - delete_block
- target: $.paths['/api/folders/{folder_id}'].delete
  update:
    x-mcp-tools:
    - delete_folder
- target: $.paths['/api/pages/{page_id}'].delete
  update:
    x-mcp-tools:
    - delete_page
- target: $.paths['/api/dashboards/pins/{pin_id}'].delete
  update:
    x-mcp-tools:
    - unpin_dashboard_block
- target: $.paths['/api/datastore/{block_id}/rows/{row_id}'].delete
  update:
    x-mcp-tools:
    - delete_row
- target: $.paths['/api/datastore/{block_id}/rows/delete'].post
  update:
    x-mcp-tools:
    - delete_rows
- target: $.paths['/api/skills/{skill_id}'].delete
  update:
    x-mcp-tools:
    - delete_skill
- target: $.paths['/api/files/{file_id}/download'].get
  update:
    x-mcp-tools:
    - get_image_url
- target: $.paths['/api/folders/find-by-path'].post
  update:
    x-mcp-tools:
    - find_folder_by_path
- target: $.paths['/api/skills/{skill_id}/fork'].post
  update:
    x-mcp-tools:
    - fork_skill
- target: $.paths['/api/links/backlinks/{page_id}'].get
  update:
    x-mcp-tools:
    - get_backlinks
- target: $.paths['/api/blocks/{block_id}/history'].get
  update:
    x-mcp-tools:
    - get_block_history
- target: $.paths['/api/blocks/{block_id}/slice'].get
  update:
    x-mcp-tools:
    - get_block_slice
- target: $.paths['/api/cards/{card_id}'].get
  update:
    x-mcp-tools:
    - get_card
- target: $.paths['/api/files/{file_id}/content'].get
  update:
    x-mcp-tools:
    - get_image
- target: $.paths['/api/files/{file_id}/text'].get
  update:
    x-mcp-tools:
    - get_file_text
- target: $.paths['/api/folders/{folder_id}'].get
  update:
    x-mcp-tools:
    - get_folder
- target: $.paths['/api/graphs/{graph_id}'].get
  update:
    x-mcp-tools:
    - get_graph
- target: $.paths['/api/links/outlinks/{page_id}'].get
  update:
    x-mcp-tools:
    - get_outlinks
- target: $.paths['/api/pages/{page_id}'].get
  update:
    x-mcp-tools:
    - get_page
- target: $.paths['/api/pages/tree'].get
  update:
    x-mcp-tools:
    - get_page_tree
- target: $.paths['/api/projects/{root_id}/organization'].get
  update:
    x-mcp-tools:
    - get_project_organization
- target: $.paths['/api/skills/{skill_id}'].get
  update:
    x-mcp-tools:
    - get_skill
- target: $.paths['/api/skills/shared-with-me'].get
  update:
    x-mcp-tools:
    - get_skills_shared_with_me
- target: $.paths['/api/cards/{card_id}/attachments'].get
  update:
    x-mcp-tools:
    - list_card_files
- target: $.paths['/api/blocks/page/{page_id}/summary'].get
  update:
    x-mcp-tools:
    - list_blocks_meta
- target: $.paths['/api/blocks/page/{page_id}'].get
  update:
    x-mcp-tools:
    - list_blocks
- target: $.paths['/api/dashboards/{dashboard_id}/cards'].get
  update:
    x-mcp-tools:
    - list_cards
- target: $.paths['/api/dashboards'].get
  update:
    x-mcp-tools:
    - list_dashboards
- target: $.paths['/api/folders'].get
  update:
    x-mcp-tools:
    - list_folders
- target: $.paths['/api/graphs'].get
  update:
    x-mcp-tools:
    - list_graphs
- target: $.paths['/api/skills/my'].get
  update:
    x-mcp-tools:
    - get_my_skills
- target: $.paths['/api/files/page/{page_id}'].get
  update:
    x-mcp-tools:
    - list_page_files
- target: $.paths['/api/pages'].get
  update:
    x-mcp-tools:
    - list_pages
- target: $.paths['/api/dashboards/{dashboard_id}/pins'].get
  update:
    x-mcp-tools:
    - list_dashboard_pins
- target: $.paths['/api/skills/{skill_id}/shares'].get
  update:
    x-mcp-tools:
    - list_skill_shares
- target: $.paths['/api/tasks'].get
  update:
    x-mcp-tools:
    - get_pending_agent_tasks
- target: $.paths['/api/pages/trash'].get
  update:
    x-mcp-tools:
    - list_trash
- target: $.paths['/api/cards/{card_id}/move'].post
  update:
    x-mcp-tools:
    - move_card
- target: $.paths['/api/pages/{page_id}/permanent'].delete
  update:
    x-mcp-tools:
    - permanent_delete_page
- target: $.paths['/api/dashboards/{dashboard_id}/blocks'].get
  update:
    x-mcp-tools:
    - find_dashboard_blocks
- target: $.paths['/api/datastore/{block_id}/rows'].get
  update:
    x-mcp-tools:
    - query_rows
- target: $.paths['/api/files/request-upload'].post
  update:
    x-mcp-tools:
    - get_upload_url
- target: $.paths['/api/blocks/{block_id}/restore/{version_number}'].post
  update:
    x-mcp-tools:
    - restore_block_version
- target: $.paths['/api/folders/{folder_id}/restore'].post
  update:
    x-mcp-tools:
    - restore_folder
- target: $.paths['/api/folders/groups/restore'].post
  update:
    x-mcp-tools:
    - restore_group
- target: $.paths['/api/pages/{page_id}/restore'].post
  update:
    x-mcp-tools:
    - restore_page
- target: $.paths['/api/skills/{skill_id}/shares/{share_id}'].delete
  update:
    x-mcp-tools:
    - revoke_skill_share
- target: $.paths['/api/blocks/search'].get
  update:
    x-mcp-tools:
    - search_blocks
- target: $.paths['/api/folders/search'].get
  update:
    x-mcp-tools:
    - search_folder
- target: $.paths['/api/pages/search'].get
  update:
    x-mcp-tools:
    - search_pages
- target: $.paths['/api/skills/search'].get
  update:
    x-mcp-tools:
    - search_skills
- target: $.paths['/api/skills/{skill_id}/shares'].post
  update:
    x-mcp-tools:
    - share_skill
- target: $.paths['/api/cards/{card_id}/attachments/snapshot'].post
  update:
    x-mcp-tools:
    - snapshot_card_document
- target: $.paths['/api/blocks/{block_id}'].put
  update:
    x-mcp-tools:
    - add_checklist_item
    - update_block
    - update_checklist_item
- target: $.paths['/api/cards/{card_id}'].patch
  update:
    x-mcp-tools:
    - update_card
- target: $.paths['/api/folders/{folder_id}'].put
  update:
    x-mcp-tools:
    - update_folder
- target: $.paths['/api/graphs/{graph_id}'].put
  update:
    x-mcp-tools:
    - add_graph_edge
    - add_graph_node
    - delete_graph_edge
    - delete_graph_node
    - update_graph
    - update_graph_node
- target: $.paths['/api/pages/{page_id}'].put
  update:
    x-mcp-tools:
    - update_page
    - update_page_summary
- target: $.paths['/api/datastore/{block_id}/rows/{row_id}'].put
  update:
    x-mcp-tools:
    - update_row
- target: $.paths['/api/datastore/{block_id}/rows'].patch
  update:
    x-mcp-tools:
    - update_rows
- target: $.paths['/api/datastore/{block_id}/schema'].put
  update:
    x-mcp-tools:
    - add_column
    - delete_column
- target: $.paths['/api/skills/{skill_id}'].put
  update:
    x-mcp-tools:
    - update_skill
- target: $.paths['/api/skills/{skill_id}/shares/{share_id}'].put
  update:
    x-mcp-tools:
    - update_skill_share
- target: $.paths['/api/tasks/{block_id}/{task_id}'].patch
  update:
    x-mcp-tools:
    - update_ctlsurf_task_item
- target: $.paths['/api/dashboards/{dashboard_id}/virtual-tickets/{block_id}/{item_id}'].patch
  update:
    x-mcp-tools:
    - update_dashboard_ticket

Work with this as data

Every overlay here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for openapi overlays

4 MCP tools reach this
  • find_overlaysBrowse and filter every overlay in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/ctlsurf-com-openapi-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.