Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
83556e3
Add Google Apps Script MCP integration with 5 consolidated tools
claude Nov 11, 2025
19602d4
Consolidate Google Tasks tools from 12 to 3 (75% reduction)
claude Nov 11, 2025
be4845a
Add comprehensive tool consolidation plan and progress documentation
claude Nov 11, 2025
3c9cf5e
Consolidate Gmail tools from 12 to 6 (50% reduction)
claude Nov 12, 2025
aac0e6a
Update consolidation plan with Gmail completion (77 → 62 tools, 19% p…
claude Nov 12, 2025
e1607a0
Add pull request description for Phase 1 consolidation
claude Nov 12, 2025
8fa0aac
Checkpoint from VS Code for coding agent session
Coldaine Nov 12, 2025
7a5a4ee
Consolidate Google Docs tools from 14 to 7 (50% reduction)
Copilot Nov 12, 2025
d067104
Update documentation for Phase 2 completion
Copilot Nov 12, 2025
e674535
Fix critical bugs in Phase 2 Docs consolidation
Coldaine Nov 12, 2025
94cf409
Merge pull request #1 from Coldaine/claude/integrate-google-apps-mcp-…
Coldaine Nov 13, 2025
fef9fb8
Implement comprehensive testing suite and secret management
Coldaine Nov 23, 2025
ec8f17a
Fix unused variable in pause_middleware.py
Coldaine Nov 23, 2025
f2cd3e2
Merge pull request #3 from Coldaine/phase-2-docs-consolidation
Coldaine Nov 23, 2025
d91d32d
phase 2 docs consolidation (#4)
Coldaine Dec 3, 2025
590de15
Add Desktop OAuth localhost redirect URI validation
Coldaine Jan 6, 2026
9fe3cce
Remove name from validation note
Coldaine Jan 6, 2026
a1910a7
Add comprehensive Gmail message management capabilities (#5)
Coldaine Jan 23, 2026
9abd08f
chore: enforce cross-platform line endings via .gitattributes
web-flow Feb 16, 2026
c91761f
test: add shared test fixtures and conftest for unit tests
Coldaine Mar 1, 2026
2a474e3
test: add Gmail helper unit tests with mocked API responses
Coldaine Mar 1, 2026
c2857ef
test: add Gmail attachment download tests for PR #6 functionality
Coldaine Mar 1, 2026
dc99a65
test: add OAuth2.1 flow tests for token refresh and multi-user isolation
Coldaine Mar 1, 2026
261eea3
test: add rate limiting and retry logic tests with exponential backoff
Coldaine Mar 1, 2026
e1252f8
test: add security tests for path traversal, CSRF, and session binding
Coldaine Mar 1, 2026
3a89db4
test: add Calendar helper tests for reminders and transparency
Coldaine Mar 1, 2026
cb8f814
test: add Drive helper tests for permissions, URLs, and query patterns
Coldaine Mar 1, 2026
085137d
test: add Docs helper tests for text styles, requests, and validation
Coldaine Mar 1, 2026
0cf072a
fix: address review comments from PR #522
Coldaine Mar 1, 2026
ae5103d
chore: add generated metadata files to .gitignore
Mar 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
GOOGLE_OAUTH_CLIENT_ID=your_client_id_here
GOOGLE_OAUTH_CLIENT_SECRET=your_client_secret_here
WORKSPACE_MCP_PORT=8000
# Optional: Set to true to enable OAuth 2.1 features
# MCP_ENABLE_OAUTH21=true
8 changes: 8 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Auto-generated .gitattributes for cross-platform line ending consistency
# Default: LF for all text files
* text=auto eol=lf

# Windows scripts require CRLF
*.ps1 text eol=crlf
*.psm1 text eol=crlf

9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,19 @@ venv/

# ---- Secrets -----------------------------------------------------------
client_secret.json
.workspace_mcp_paused
secrets/*.generated.env

# ---- Logs --------------------------------------------------------------
mcp_server_debug.log

# ---- Local development files -------------------------------------------
/.credentials
/.claude

# Generated metadata - do not commit
_open_prs.json
_open_issues.json
issues.json
_repo_metadata.json

35 changes: 35 additions & 0 deletions .kilo-prompt/mission.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
Repo: Coldaine/google_workspace_mcp

You are a coding agent with repo read/write + shell + PR capability.

Mission:
1) Read docs to determine what MCP surface area is implemented (Gmail/Drive/Calendar/etc).
2) Produce a plan to make the MCP server reliable and operator-friendly.
3) Execute Milestone 1 now.

Required reading:
- README.md + docs/
- MCP server spec / tool list (if present)
- Auth setup instructions (OAuth, service accounts) and security constraints
- Open issues/PRs

Deliverables:
A) "Tool inventory":
- List each MCP tool, inputs/outputs, and auth requirements
- Known limitations and failure modes

B) "Execution plan":
- Milestone 1: correctness + usability: working quickstart, env example, minimal smoke tests
- Milestone 2+: expand tool coverage + stronger error models

C) Execute Milestone 1:
- Add a smoke test mode that runs without real credentials (mock layer) + an integration test path (optional)
- Harden error messages for auth failures and quota failures
- Open PR

Constraints:
- No credentials in repo; strong .env.example and redaction.
- Avoid interactive flows in CI; provide local-only integration tests.

Stopping condition:
- One PR open that improves quickstart reliability + adds minimal test coverage.
22 changes: 22 additions & 0 deletions .kilo-prompt/review-mission.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
You are a coding agent working on PR #7 in this repository (branch: kilo/mock-services-and-env).

Your mission is to fully address all open review comments and ensure the PR is complete and correct.

Steps:
1. Run: gh pr view 7 --comments
2. Run: gh pr diff 7
3. Read tests/mock_services.py, .env.example, and any referenced tool files (gdrive/drive_tools.py, gsheets/sheets_tools.py, gcalendar/calendar_tools.py)
4. Address EVERY comment:
- P1: MockCalendarService defines `list` twice (calendarList.list and events.list) — Python only keeps the second, breaking calendarList flow. Fix: split into separate resource classes.
- P1: MockSheetsService defines `get` twice (spreadsheets.get and values.get) — use separate _SpreadsheetsResource and _ValuesResource sub-objects.
- P2: MockDriveService.update — body=None causes TypeError when merged with **body. Guard: if body is not None else {}.
- Remove unused imports: AsyncMock, Optional (causes ruff check failure).
- export_media imports HttpRequest but never uses it — either use it or remove it (suggestion: return MagicMock(spec=HttpRequest)).
- .env.example: USER_GOOGLE_EMAIL is marked REQUIRED but should be OPTIONAL — update comment as suggested.
- .env.example: port default inconsistency (4100 vs 8000) — align to actual runtime default.
5. Run `python -m pytest tests/mock_services.py` (or similar) to verify fixes.
6. Commit all fixes to the PR branch.
7. Push.
8. Reply to review: gh pr review 7 --comment -b "Addressed all comments: ..."

Stopping condition: All review bugs fixed, tests pass, committed and pushed.
Loading