Felt MCP server
69 operations0 webhooks
Collaborative mapping and geospatial visualization platform for creating maps, layers, components, and spatial analysis.
Try Felt with your agent
Connect Felt, then paste this into Claude, ChatGPT or Cursor. For ideas from other apps, see the use cases.
Using Corsair, show me what you can do in Felt on my account, then run one read-only example and show me the result.
Felt tools and triggers
Tools are what your agent can do in Felt through Corsair's MCP server. Triggers are the Felt events a routine can start from.
Layers
- Add From SourceWrite
Add a layer to a map from a source: one of its datasets, a SQL query or a STAC asset
layers.addFromSource
- Create Custom ExportWrite
Request an export of layer data in a specified format
layers.createCustomExport
- DeleteDestructive
Permanently delete a map layer
layers.delete
- DuplicateWrite
Duplicate layers across maps
layers.duplicate
- GetRead-only
Get details of a specific map layer
layers.get
- Get Export LinkRead-only
Get a direct download link for layer data
layers.getExportLink
- ListRead-only
List all layers within a map
layers.list
- List LibraryRead-only
List layers available in the library
layers.listLibrary
- Poll Custom ExportRead-only
Check status and get download URL of a layer export request
layers.pollCustomExport
- PublishWrite
Publish a layer to the library
layers.publish
- RefreshWrite
Trigger a refresh of a live data layer
layers.refresh
- UpdateWrite
Update multiple map layers in bulk
layers.update
- Update StyleWrite
Update visual style of a layer using Felt Style Language
layers.updateStyle
- UploadWrite
Upload a data layer to a map from a URL or file upload parameters
layers.upload
Print Pages
- Create LayoutWrite
Save a print page as a reusable layout template
printPages.createLayout
- Create PageWrite
Create a new print page design in a map
printPages.createPage
- Delete ItemDestructive
Delete an item from a print page design
printPages.deleteItem
- Delete LayoutDestructive
Delete a print layout template
printPages.deleteLayout
- Delete PageDestructive
Permanently delete a print page design
printPages.deletePage
- Export PageWrite
Export a print page as a PDF or image
printPages.exportPage
- Get PageRead-only
Get details and items of a print page design
printPages.getPage
- List LayoutsRead-only
List saved print layouts in a map
printPages.listLayouts
- List PagesRead-only
List print page designs in a map
printPages.listPages
- Update LayoutWrite
Update a print layout template
printPages.updateLayout
- Update PageWrite
Update properties and dimensions of a print page design
printPages.updatePage
- Upsert ItemsWrite
Create or update items on a print page design
printPages.upsertItems
Sources
- CreateWrite
Connect a new cloud database or warehouse data source
sources.create
- Create CredentialWrite
Add an authentication credential to a data source
sources.createCredential
- DeleteDestructive
Permanently delete a data source connection
sources.delete
- Delete CredentialDestructive
Permanently delete a credential from a data source
sources.deleteCredential
- GetRead-only
Get details of a connected data source and its datasets
sources.get
- ListRead-only
List connected data sources in the workspace
sources.list
- SyncWrite
Trigger a manual sync of a connected data source
sources.sync
- UpdateWrite
Update data source configuration or permissions
sources.update
- Update CredentialWrite
Update an authentication credential on a data source
sources.updateCredential
Maps
- CreateWrite
Create a new map in Felt
maps.create
- Create Embed TokenWrite
Create a secure authenticated embed token for a map
maps.createEmbedToken
- DeleteDestructive
Permanently delete a map
maps.delete
- DuplicateWrite
Duplicate an existing map
maps.duplicate
- Export ImageWrite
Trigger an export of the map as an image
maps.exportImage
- GetRead-only
Get details and layers of a map
maps.get
- MoveWrite
Move a map to a project or folder
maps.move
- UpdateWrite
Update map properties such as title, description, or permissions
maps.update
Elements
- DeleteDestructive
Delete a drawn element from a map; the element id is the feature's `felt:id` property
elements.delete
- Get GroupRead-only
Get elements in an element group as GeoJSON
elements.getGroup
- ListRead-only
List drawn elements on a map in GeoJSON format
elements.list
- List GroupsRead-only
List element groups in a map
elements.listGroups
- UpsertWrite
Create or update elements on a map using GeoJSON FeatureCollection
elements.upsert
- Upsert GroupsWrite
Create or update element groups in a map
elements.upsertGroups
Layer Groups
- DeleteDestructive
Permanently delete a layer group
layerGroups.delete
- GetRead-only
Get details of a layer group
layerGroups.get
- ListRead-only
List layer groups in a map
layerGroups.list
- PublishWrite
Publish a layer group to the library
layerGroups.publish
- UpdateWrite
Update properties of a layer group
layerGroups.update
- Update BulkWrite
Update multiple layer groups in bulk
layerGroups.updateBulk
Layer Components
- CreateWrite
Create a dashboard component on a layer
layerComponents.create
- DeleteDestructive
Permanently delete a layer component
layerComponents.delete
- GetRead-only
Get details of a layer component
layerComponents.get
- ListRead-only
List dashboard UI components attached to a layer
layerComponents.list
- UpdateWrite
Update a dashboard component on a layer
layerComponents.update
Projects
- CreateWrite
Create a new project in the workspace
projects.create
- DeleteDestructive
Permanently delete a project
projects.delete
- GetRead-only
Get details and maps contained within a project
projects.get
- ListRead-only
List projects in the workspace
projects.list
- UpdateWrite
Update project settings or permissions
projects.update
Comments
- DeleteDestructive
Permanently delete a map comment
comments.delete
- ExportRead-only
Export all comments and replies from a map
comments.export
- ResolveWrite
Resolve a map comment thread
comments.resolve
Users
- Get CurrentRead-only
Retrieve profile information for the authenticated user
users.getCurrent
Connect Felt to Claude, ChatGPT or Cursor
- 1
Connect Felt in Corsair
Add your Felt API key once in Corsair. Corsair stores the credential encrypted and makes the Felt API calls for your agent, so it never goes into a prompt or a config file. Connect Felt
If your link lets the agent add apps, you can skip this: it gives you a sign-in link the first time it needs Felt. On a ChatGPT personal plan, connect Felt here first.
- 2
Add Corsair's MCP server to your agent
Every client uses the same address:
https://mcp.corsair.dev/mcpOpen Customize → Connectors → Add custom connector, paste the address, then select Connect.Add a custom MCP server with the address and choose OAuth. Personal plans get read tools only.Add to CursorOr add this to~/.cursor/mcp.json. Cursor opens Corsair to sign in the first time it connects.{ "mcpServers": { "corsair": { "url": "https://mcp.corsair.dev/mcp" } } }Run this, then run/mcpin Claude Code to sign in.claude mcp add --transport http corsair https://mcp.corsair.dev/mcpCodex, Gemini CLI, VS Code, Zed and other clients with OAuth sign-in work the same way. Clients without it, such as GitHub Copilot's coding agent, use a link's own address and an API key. Setup for every client
- 3
Sign in and choose what needs your approval
Your client opens Corsair to sign in. Pick a link: the apps your agent can use and a mode that decides what it may do without asking. In the default Cautious mode, Felt's read and write operations run right away and its 12 destructive operations wait for your approval. Strict mode asks before every write and refuses destructive operations, and Read mode allows reads only.
FAQ
Install corsair and @corsair-dev/felt, add the Felt plugin, and connect with an API key. Then call methods like corsair.felt.api.comments.delete() from your app. Corsair keeps each tenant isolated.
Yes. Felt requires an API key from your Felt account or developer dashboard. Create credentials with access that matches what you automate, then paste them into Corsair or connect through managed auth in Hub.
Yes. One Corsair client can hit Felt, GitHub, Notion, Stripe, and the rest. Trigger Felt from a webhook, push updates to Slack, or chain actions across plugins. Same tenant context across integrations, plain TypeScript.
Teams use Corsair for collaborative mapping and geospatial visualization platform for creating maps, layers, components, and spatial analysis. Common builds include sync jobs, admin tooling, and agents that call Felt APIs from your backend.
The SDK is open source. Self-host and you pay Corsair nothing for the integration layer. Hub bills for hosted auth and execution, not per Felt API call. Hub has a generous free tier. For hobby projects you can probably run the whole thing on free. Paid plans start to matter with more tenants or heavier traffic.
We maintain @corsair-dev/felt in the open repo. When Felt ships API changes, upgrade the package. Your call sites stay typed. You should not need to rewrite the integration layer each time.
No. Corsair does not read your Felt data or hold individual access credentials. Credentials stay in your database. API calls run on your instance. We do not store Felt data on your behalf.
Yes. Add https://mcp.corsair.dev/mcp as a custom connector or MCP server in Claude, ChatGPT, Cursor, VS Code, Claude Code, Codex or any client that supports remote MCP servers with OAuth sign-in, then sign in to Corsair. On ChatGPT personal plans, custom servers currently get read tools only.
Yes. Put Felt on a link in Strict mode and every write waits for your approval, while destructive actions are refused. The default Cautious mode asks only before the 12 destructive Felt operations. You can change a link's mode at hub.corsair.dev/me.