List Tools
List available tools that can be executed via tools/call method. Returns OAuth-filtered tools based on user permissions and database configuration.
Overview
The tools/list
method returns all tools available to the authenticated user. Tools are dynamically filtered based on OAuth authentication and database permissions, ensuring users only see tools they can execute.
Prerequisites
- Session Initialization: Complete
initialize
→notifications/initialized
flow - Authentication: Valid OAuth token or PAT with
mcp.read
scope - Session ID: Include
Mcp-Session-Id
header from initialization
Request Format
Request Parameters
Must be "2.0"
(JSON-RPC version)
Unique request identifier (cannot be null)
Must be "tools/list"
Optional parameters
Response Format
Always "2.0"
Matches the request ID exactly
Tools list result
Example Responses
OAuth Filtering Behavior
Our implementation applies OAuth-based filtering:
User-Specific Tool Access
- Database Permissions: Tools filtered based on user’s database permissions
- OAuth Client ID: Each client gets appropriate tool subset
- Consistent Results: Same user always gets same tools (unless permissions change)
- Dynamic Loading: Tools loaded from database per user context
Access Control Validation
Tool Count Expectations
- Minimum: Authenticated users get at least some tools
- Maximum: Limited by user permissions and server configuration
- Consistency: Tool count remains stable across requests for same user
Implementation Notes
Request ID Requirements
- Must be unique within session
- Cannot be null (enforced by our implementation)
- String or number format accepted
Session Management
Mcp-Session-Id
header required after initialization- Session validates OAuth token and permissions
- Invalid session returns authentication error
Pagination Support
- Uses cursor-based pagination
nextCursor
provided when more results available- Empty cursor parameter returns first page
Error Handling
- -32000: Authentication/session errors
- -32600: Invalid request format
- -32602: Invalid parameters
Performance Considerations
- Tools cached per user session
- Database queries optimized for user permissions
- Results paginated for large tool sets
This endpoint provides the foundation for tool discovery, enabling clients to understand what operations are available before calling tools/call.
Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Headers
MCP session ID (required after initialization)
"session_abc123"
Path Parameters
Tenant identifier (e.g., 'pipedrive', 'salesforce', 'hubspot')
"pipedrive"
Body
Response
JSON-RPC 2.0 response
The response is of type object
.
The response is of type object
.
The response is of type object
.
The response is of type object
.
The response is of type object
.
The response is of type object
.
The response is of type object
.
The response is of type object
.
The response is of type object
.
The response is of type object
.
The response is of type object
.
The response is of type object
.