Split on comma before searching for rel="next" to avoid
incorrectly matching page number from a different link
(e.g., rel="prev") in multi-link headers.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Move `import re` to top of file (was inline in function)
- Add page parameter validation (page >= 1)
- Fix parameter order bug in search_utils.py (was swapped)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add page parameter to get_comments (default: 1)
- Parse X-Total-Count header for total comments count
- Parse Link header for next_page indicator
- Update FastMCP tool and CLI server to return pagination metadata
Response now includes total_count and next_page fields to help
clients navigate through paginated comments.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Updated the get_todos method to retrieve all todos from a todolist by handling pagination transparently. The method now aggregates todos across multiple pages and updates the README to reflect this change.
Changed truthy checks to explicit 'is not None' checks in create_todo and
update_todo methods to properly handle intentionally empty/false values
(empty lists, False) being sent to the API for field clearing.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add create, update, delete, complete, and uncomplete methods to basecamp_client.py
- Add tool definitions and execution logic to mcp_server_cli.py
- Add async todo management functions to basecamp_fastmcp.py
- Support all optional fields: description, assignees, due dates, notifications
- Use lambda wrapper for proper keyword argument handling in FastMCP
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Implement methods to list uploads and retrieve specific upload details in basecamp_client.py.
- Add corresponding asynchronous functions for uploads in basecamp_fastmcp.py.
- Enhance search functionality to include uploads in search_utils.py, allowing users to search by filename or content.
- Rename and enhance methods for retrieving card tables and managing cards.
- Introduce new methods for completing and uncompleting cards and card steps.
- Update MCP server CLI to include new card and card step functionalities.
- Revise README to reflect changes in card management tools and usage examples.
- Implement methods for managing card tables and columns in BasecampClient.
- Add corresponding tools in MCP server CLI for card table operations.
- Update README with new card table tools and usage examples.
- Create example script demonstrating card table API usage.
- Add unit tests for card table functionality.
This commit introduces two new files:
- `basecamp_client.py`: A client for interacting with the Basecamp 3 API, supporting both Basic Authentication and OAuth 2.0.
- `basecamp_oauth.py`: A module for handling OAuth 2.0 authentication with Basecamp 3, including methods for obtaining authorization URLs, exchanging codes for tokens, and refreshing tokens.
These additions provide essential functionality for integrating with the Basecamp API, enhancing the overall capabilities of the project.
This commit deletes obsolete files related to the Basecamp MCP integration, including:
- `basecamp_client.py`
- `basecamp_oauth.py`
- `composio_client_example.py`
- `composio_integration.py`
- `mcp_integration.py`
- `setup.sh`
- `start_basecamp_mcp.sh`
Additionally, a new file `mcp_server_cli.py` is introduced to streamline the MCP server functionality. The README has been updated to reflect these changes and provide clearer setup instructions.
This cleanup aims to enhance maintainability and focus on the core components of the integration.