Commit Graph

44 Commits

Author SHA1 Message Date
Dominik Fretz
6eb134731b Update basecamp_fastmcp.py
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-08-27 09:59:40 +10:00
Dominik Fretz
5aeec24743 Update basecamp_client.py
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-08-27 09:59:19 +10:00
Dominik Fretz
e51b272bd4 Update mcp_server_cli.py
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-08-27 09:57:23 +10:00
Dominik Fretz
1266ecb921 Add todo item management functionality
- 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>
2025-08-20 14:42:55 +10:00
George Antonopoulos
0032498949 Add upload management features to Basecamp integration
- 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.
2025-07-30 10:22:42 +01:00
George Antonopoulos
5ea5e77429 Remove FASTMCP_MIGRATION.md document as part of the migration cleanup process. 2025-07-27 20:23:14 +01:00
George Antonopoulos
ee3f31fcd2 Add generate_claude_desktop_config.py for Claude Desktop integration
- Introduce a new script to generate configuration for Claude Desktop based on Basecamp MCP integration.
- Update README with setup instructions for Claude Desktop users, including configuration generation steps and troubleshooting tips.
- Ensure compatibility with both Cursor and Claude Desktop clients.
2025-07-27 20:18:03 +01:00
George Antonopoulos
1cb7b4423b Remove Claude MCP integration instructions document 2025-07-27 20:09:01 +01:00
George Antonopoulos
aec5c3eebc Enhance README and add setup script for Basecamp MCP Integration
- Update README to reflect migration to FastMCP framework and improved setup instructions
- Introduce a new setup.py script for automated environment setup, including virtual environment creation, dependency installation, and .env file generation
- Ensure compatibility with Python 3.8+ and provide clear troubleshooting steps for common issues
2025-07-27 20:07:25 +01:00
George Antonopoulos
4cfc865688 Update migration docs - 100% complete with all 46 tools migrated 2025-07-27 19:40:05 +01:00
George Antonopoulos
1c46017162 Complete FastMCP migration - ALL 46 tools migrated with 100% feature parity 2025-07-27 19:39:08 +01:00
George Antonopoulos
759207e2a3 Complete FastMCP migration documentation - all essential tools migrated successfully 2025-07-27 19:34:55 +01:00
George Antonopoulos
65c31a7393 🔧 Add dual-run configuration support for FastMCP migration
- Update generate_cursor_config.py to support both FastMCP and legacy servers
- Add --legacy flag to switch to old mcp_server_cli.py during transition
- Default to new FastMCP server (basecamp_fastmcp.py) - RECOMMENDED
- Auto-cleanup old server configs when switching
- Provide clear migration instructions and fallback options

Usage:
  python generate_cursor_config.py           # Use FastMCP (default)
  python generate_cursor_config.py --legacy  # Use legacy server

Following migration plan P-5: Safe dual-run deployment with easy rollback
2025-07-27 19:33:01 +01:00
George Antonopoulos
d7e39019c8 🚀 MAJOR: Migrate to official FastMCP framework
- Create new basecamp_fastmcp.py using official Anthropic MCP SDK
- Migrate 19 essential tools following official MCP best practices
- Maintain identical tool names and API compatibility with original server
- Add FastMCP dependencies (mcp[cli]>=1.2.0, httpx, anyio)
- Use async/await with anyio.to_thread for sync→async bridge
- Follow official logging practices (stderr + file, not stdout)
- Full compatibility with Cursor and Claude Desktop

Core tools migrated:
 Projects: get_projects, get_project, get_todolists, get_todos
 Search: search_basecamp, global_search
 Communication: get_comments, get_campfire_lines
 Card Tables: get_card_tables, get_card_table, get_columns, get_cards
 Card Management: create_card, get_card, update_card, move_card, complete_card
 Column Management: get_column, create_column

Next: Update config generation for dual-run support
2025-07-27 19:30:59 +01:00
George Antonopoulos
1d40341f28 Merge pull request #10 from georgeantonopoulos/codex/research-and-enhance-basecamp-api-functionality
Add more Basecamp API endpoints
2025-07-27 18:29:24 +01:00
George Antonopoulos
da041f9c5d Fix BasecampClient to include authentication in attachment uploads 2025-07-27 18:29:01 +01:00
George Antonopoulos
fc3a5b922a Add additional Basecamp API tools 2025-07-20 20:51:47 +01:00
George Antonopoulos
982757c309 Add reference/ directory to .gitignore 2025-06-29 08:41:45 +01:00
George Antonopoulos
6ee37ccfc2 Merge pull request #9 from georgeantonopoulos/feature/card-tables
Feature/card tables
2025-06-29 08:38:39 +01:00
George Antonopoulos
b740378a90 Update MCP server CLI and example script to include card_table_id in request handling
- Add card_table_id to the required properties in MCPServer class.
- Modify the move_column method to retrieve card_table_id from arguments.
- Refactor subprocess call in card_table_example.py to use subprocess.run for better error handling.
2025-06-29 08:37:41 +01:00
George Antonopoulos
a439865ef4 Refactor card management in Basecamp client and MCP server CLI
- 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.
2025-06-29 08:22:09 +01:00
George Antonopoulos
4e466c20da Add card table functionality to Basecamp client and MCP server CLI
- 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.
2025-06-26 22:34:01 +01:00
George Antonopoulos
a00d887c4a Enhance token management by adding ensure_valid_token function to check and refresh tokens. Introduce warning message for expired tokens in token_info. Update home and get_token_api routes to utilize the new token validation logic. 2025-06-18 09:09:45 +01:00
George Antonopoulos
e9df8820b0 Merge pull request #7 from georgeantonopoulos/codex/add-missing-basecamp-api-functionality
Implement global search across Basecamp
2025-06-18 08:41:32 +01:00
George Antonopoulos
301cc0f961 Add global search tool 2025-06-18 08:17:55 +01:00
George Antonopoulos
0d64f6028c Merge remote-tracking branch 'origin/codex/cleanup-files--newline-and-trailing-spaces' 2025-06-06 10:39:25 +01:00
George Antonopoulos
bba8aa1cdc Merge branch 'feature/sse-mcp-cursor-compat' 2025-06-06 10:33:11 +01:00
George Antonopoulos
bd476540f8 Merge pull request #4 from iamanikeev/fix-basecamp-api-issues
Add daily check-ins functionality, fix some issues with getting todo lists/sets
2025-06-06 10:24:46 +01:00
George Antonopoulos
e9dc21e881 Merge pull request #5 from georgeantonopoulos/codex/add-license-file-with-mit-license
Add MIT license file
2025-06-06 10:24:23 +01:00
George Antonopoulos
0884dcd105 chore: remove trailing spaces and ensure newline 2025-06-06 10:23:50 +01:00
George Antonopoulos
52fd14c3af chore: add MIT license 2025-06-06 10:23:27 +01:00
George Antonopoulos
f0f27f078a ENv file ignored 2025-06-06 10:20:32 +01:00
Alexander Anikeev
cb82df4547 Add daily check-ins functionality, fix some issues with getting todo lists/sets 2025-06-05 18:51:36 +07:00
George Antonopoulos
5503ba5f8f doc not needed 2025-06-02 17:45:26 +01:00
George Antonopoulos
1d856c0899 env example updated 2025-06-02 17:41:08 +01:00
George Antonopoulos
00754b21c3 Merge feature/sse-mcp-cursor-compat into main - Added CLI MCP server, tests, and Cursor config generator 2025-06-02 17:26:56 +01:00
George Antonopoulos
9bb32c5697 Update .gitignore to include Composio integration files and modify README for clarity and setup instructions 2025-06-02 17:19:35 +01:00
George Antonopoulos
32a0de3bb0 feat: Add Basecamp API client and OAuth authentication module
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.
2025-06-02 17:13:17 +01:00
George Antonopoulos
b3a6efc5d7 refactor: Remove deprecated files and clean up codebase
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.
2025-06-02 17:11:39 +01:00
google-labs-jules[bot]
b0deac4d87 feat: Implement SSE endpoint for Cursor compatibility
This commit introduces a Server-Sent Events (SSE) endpoint at `/mcp/stream`
to improve compatibility with Cursor, which appears to expect an SSE stream
for actions like `ListOfferings`.

Changes include:
- Added a new `/mcp/stream` route to `mcp_server.py`.
- This stream sends an initial "connected" event.
- It then attempts to fetch and stream Basecamp projects as "offering" events.
  - Handles authentication errors (e.g., missing tokens) by sending an
    `auth_error` event over SSE.
  - Sends an "offerings_complete" event after successfully streaming projects.
- The stream sends periodic "ping" events to keep the connection alive.
- The `Content-Type` header for `/mcp/stream` is correctly set to
  `text/event-stream`.
- Updated `README.md` to suggest the new `/mcp/stream` URL for Cursor
  configuration and provide context.

Issue #3 (regarding refactoring BasecampClient initialization) was
investigated. The existing `get_basecamp_client()` in `mcp_server.py`,
which includes token refresh logic, was found to be more suitable than
alternatives in `mcp_integration.py` or `composio_integration.py`.
No code changes were made for Issue #3.

Testing with `curl` confirmed the SSE endpoint's functionality,
including correct event flow and error handling.
2025-06-02 11:41:24 +00:00
George Antonopoulos
c9d4165584 instructions for Claude 2025-05-07 12:34:58 +01:00
George Antonopoulos
712344741e Fix token_storage function name and ensure Composio integration is fully functional 2025-03-09 17:29:28 +00:00
George Antonopoulos
e08e48de50 Fix Basecamp Campfire functionality and improve error handling 2025-03-09 17:16:07 +00:00
George Antonopoulos
9c49ce02b1 Initial commit: Basecamp MCP server with OAuth authentication 2025-03-09 16:42:28 +00:00