agentleFS
fideguchfideguch/my_pm_tools/skills/workspace-bridge/SKILL.md

workspace-bridge

Skill1 starsChanged 8 months agoMITView on GitHub

Notion + Google Workspace bridge for My PM Tools. Provides 16 MCP tools for reading/writing Notion pages and databases, searching Google Drive, reading/writing Sheets, listing/creating Calendar events, and searching Gmail. Extends the core project management workflow with external knowledge and document integration.

  • Reads credentials

The file

We split this skill into the rules it gives an agent

3 rules. About 0 are common, 2 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Create an integration at https://www.notion.so/my-integrations

    line 72
  2. Distinctive:

    Create OAuth 2.0 credentials in Google Cloud Console

    line 82
  3. Very specific:

    Update protocol: see refresh-specs.md.

    line 219

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Workspace Bridge

Notion + Google Workspace bridge for My PM Tools. Provides read/write access to external PM tools through 16 MCP tools.


Supported Tools (16)

Notion Tools (7)

ToolOperationDescription
notion_searchReadSearch workspace for pages and databases by title
notion_get_pageReadGet page content converted to Markdown
notion_query_databaseReadQuery database with filter/sort
notion_create_pageWriteCreate page under database or page
notion_append_blocksWriteAppend paragraph blocks to existing page
notion_update_pageWriteUpdate page properties
notion_archive_pageWriteArchive (soft-delete) a page

Google Workspace Tools (9)

ToolOperationDescription
workspace_search_driveReadSearch Drive for files by query and MIME type
workspace_get_docReadExport Google Docs as Markdown
workspace_get_sheetReadRead spreadsheet range (headers + rows)
workspace_get_slidesReadExport Slides as plain text
workspace_list_eventsReadList Calendar events with time range filter
workspace_search_gmailReadSearch Gmail with metadata extraction
workspace_update_sheetWriteWrite values to spreadsheet cell range
workspace_append_sheetWriteAppend rows to a spreadsheet
workspace_create_eventWriteCreate a Calendar event with attendees

Auth Setup

Notion

  1. Create an integration at https://www.notion.so/my-integrations
  2. Copy the Internal Integration Token
  3. Set the environment variable:
    export NOTION_TOKEN="ntn_xxxxxxxxxxxxx"
  4. Share target pages/databases with the integration in Notion UI

Google Workspace

  1. Create OAuth 2.0 credentials in Google Cloud Console
  2. Enable APIs: Drive, Sheets, Calendar, Gmail
  3. Obtain a refresh token via OAuth flow
  4. Set environment variables:
    export GOOGLE_CLIENT_ID="xxxxx.apps.googleusercontent.com"
    export GOOGLE_CLIENT_SECRET="GOCSPX-xxxxx"
    export GOOGLE_REFRESH_TOKEN="1//xxxxx"

Security: Never commit tokens to git. Use .env files (added to .gitignore) or a secret manager.


Usage Examples

Notion: Search and read a page

notion_search({ query: "Sprint 5 Planning" })
→ Returns page IDs matching the query

notion_get_page({ pageId: "page-uuid-1234" })
→ Returns page content as Markdown

Notion: Query a database

notion_query_database({
  databaseId: "db-uuid",
  filter: '{"property":"Status","select":{"equals":"In Progress"}}',
  sorts: '[{"property":"Priority","direction":"ascending"}]'
})
→ Returns filtered/sorted rows

Google: Read spreadsheet data

workspace_get_sheet({
  spreadsheetId: "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms",
  range: "Sheet1!A1:D10"
})
→ Returns headers + data rows

Google: Search Drive

workspace_search_drive({
  query: "Sprint Report",
  mimeType: "application/vnd.google-apps.document",
  limit: 10
})
→ Returns matching file list with URLs

Google: List Calendar events

workspace_list_events({
  calendarId: "primary",
  timeMin: "2026-03-28T00:00:00Z",
  timeMax: "2026-04-04T00:00:00Z",
  limit: 20
})
→ Returns events in the time range

Notion: Update page properties

notion_update_page({
  pageId: "page-uuid-1234",
  properties: '{"Status":{"status":{"name":"Done"}}}'
})
→ Returns updated page object

Notion: Archive a page

notion_archive_page({
  pageId: "page-uuid-1234"
})
→ Returns archived page confirmation

Google: Write to spreadsheet

workspace_update_sheet({
  spreadsheetId: "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms",
  range: "Sheet1!B2:D2",
  values: [[42, "Sprint 5", "2026-03-28"]]
})
→ Returns updated cell count

Google: Append rows to spreadsheet

workspace_append_sheet({
  spreadsheetId: "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms",
  range: "Sheet1!A:D",
  values: [["Sprint 5", "2026-03-28", 42, "Done"]]
})
→ Returns appended range

Google: Create Calendar event

workspace_create_event({
  calendarId: "primary",
  summary: "Sprint 5 Review",
  start: "2026-04-06T14:00:00+09:00",
  end: "2026-04-06T15:00:00+09:00",
  description: "Sprint 5 demo and retrospective",
  attendees: ["team@example.com"]
})
→ Returns created event with ID and link

API Spec References

Detailed API specifications are maintained in api-specs/:

  • api-specs/notion.md — Notion API v1 reference
  • api-specs/google/drive.md — Google Drive API v3
  • api-specs/google/sheets.md — Google Sheets API v4
  • api-specs/google/calendar.md — Google Calendar API v3
  • api-specs/google/gmail.md — Gmail API v1

Update protocol: see refresh-specs.md.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.