List Resources
List available resources with OAuth-based filtering. Returns resources that can be read via resources/read method.
Overview
The resources/list
method returns all resources available to the authenticated user. Resources are application-controlled data sources that provide contextual information to language models.
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 "resources/list"
Optional parameters
Response Format
Always "2.0"
Matches the request ID exactly
Resources list result
Example Responses
Resource URI Patterns
Pipedrive Resources
Our implementation uses structured URI patterns for different resource types:
Pattern | Example | Description |
---|---|---|
pipedrive://deals/{id} | pipedrive://deals/12345 | Specific deal information |
pipedrive://contacts/{id} | pipedrive://contacts/67890 | Contact profiles and history |
pipedrive://activities/{type} | pipedrive://activities/calls | Activity data and reports |
pipedrive://files/{filename} | pipedrive://files/contract.pdf | File attachments and documents |
pipedrive://reports/{type} | pipedrive://reports/sales | Analytics and performance reports |
URI Validation
Resource URIs must:
- Be valid URI format with scheme and path
- Reference accessible resources for the authenticated user
- Contain non-empty paths and identifiers
- Follow consistent naming patterns
OAuth Filtering Behavior
Our implementation applies OAuth-based filtering:
User-Specific Resource Access
- Database Permissions: Resources filtered based on user’s database permissions
- OAuth Client ID: Each client gets appropriate resource subset
- Data Ownership: Users see only resources they have access to
- Dynamic Loading: Resources loaded from database per user context
Access Control Validation
Resource Count Expectations
- Minimum: Authenticated users get at least some resources
- Maximum: Limited by user permissions and data scope
- Consistency: Resource count remains stable across requests for same user
Resource Types and MIME Types
Supported Content Types
MIME Type | Description | Use Case |
---|---|---|
application/json | Structured CRM data | Deals, contacts, activities |
application/pdf | PDF documents | Proposals, contracts, reports |
text/plain | Plain text files | Notes, descriptions, logs |
image/png , image/jpeg | Image files | Screenshots, diagrams, photos |
text/csv | CSV data exports | Analytics data, bulk exports |
Content Processing
Resources are processed differently based on MIME type:
- JSON: Structured data ready for analysis
- PDF: Binary content requiring base64 encoding
- Text: Plain text content for direct processing
- Images: Visual content for multimodal analysis
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
- Resources cached per user session
- Database queries optimized for user permissions
- Results paginated for large resource sets
- URI validation performed efficiently
Resource Discovery
- Resources dynamically discovered from user’s CRM data
- Available resources depend on current data state
- Resource list may change as data is added/modified
- Permissions checked in real-time
Subscription Support
Our implementation supports resource subscriptions for change notifications:
This endpoint provides the foundation for resource discovery, enabling clients to understand what contextual data is available before calling resources/read.
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
.