Choose which API operations to expose as discrete MCP tools that agents can discover and call. When you create the MCP server, you select which operations to publish as tools. Expose all operations, only read operations, or any subset you choose, without modifying the underlying API.
Consider a Customer API with both read and write operations:
Customer API:
- GET /customers/{id} (read)
- POST /customers (create)
- PUT /customers/{id} (update)
- DELETE /customers/{id} (delete)
- GET /customers/{id}/orders (read)
- POST /customers/{id}/orders (create)
After you configure the MCP server to expose only read operations, agents see a reduced tool surface:
Customer API (Agent Tool Surface):
- GET /customers/{id} (read - exposed as an MCP tool)
- GET /customers/{id}/orders (read - exposed as an MCP tool)
The agent can read customer and order data but can’t create, modify, or delete anything. The write operations exist in the underlying API but aren’t exposed as MCP tools.
Read-Only Operation Mapping
Map only GET operations to tools first. Explicitly map write operations only when a use case requires them.
Operation Allowlisting
Select specific operations to expose rather than trying to identify operations to block. Allowlisting is safer and easier to maintain.