{"_id":"@daanvanhulsen/granola-mcp","_rev":"7-ac565c599cb41b85ecd16a788cad58ca","name":"@daanvanhulsen/granola-mcp","dist-tags":{"latest":"1.0.5"},"versions":{"1.0.0":{"name":"@daanvanhulsen/granola-mcp","version":"1.0.0","_id":"@daanvanhulsen/granola-mcp@1.0.0","maintainers":[{"name":"daanvanhulsen","email":"daan@minimum.studio"}],"dist":{"shasum":"78523cf7f6e36b3a8d5f79a82fb377461191d797","tarball":"https://registry.npmjs.org/@daanvanhulsen/granola-mcp/-/granola-mcp-1.0.0.tgz","fileCount":3,"integrity":"sha512-TEvy5QgPtsowKexFxPcsy3fXlt0t2fpeFTvJVakSnadmAObI3f/gw+3TS+YZ3MSG9HklgVRB8B3dO/ELykTDDQ==","signatures":[{"sig":"MEUCIHZJzv1gcgGR9/pfzL2t5uhZHDjkqtw0cLArYfd/3j/9AiEAqad6F96zyFLzim4eH3+vlVw/OlY08IiM2g61rS0W5f0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6740},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"a97d62d12ac3b756d0becd15e43f0b5263056b56","scripts":{"dev":"tsc-watch --onSuccess \"node dist/index.js\"","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","rebuild":"npm run clean && npm run build"},"_npmUser":{"name":"daanvanhulsen","email":"daan@minimum.studio"},"_npmVersion":"10.1.0","description":"MCP tool for Granola","directories":{},"_nodeVersion":"20.9.0","dependencies":{"zod":"^3.22.4","ts-node":"^10.9.2","typescript":"^5.3.3","@modelcontextprotocol/sdk":"^1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"tsc-watch":"^6.0.4","typescript":"^5.3.3","@types/node":"^20.11.19"},"_npmOperationalInternal":{"tmp":"tmp/granola-mcp_1.0.0_1747231040723_0.9723853241315701","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@daanvanhulsen/granola-mcp","version":"1.0.1","_id":"@daanvanhulsen/granola-mcp@1.0.1","maintainers":[{"name":"daanvanhulsen","email":"daan@minimum.studio"}],"bin":{"granola-mcp":"dist/index.js"},"dist":{"shasum":"299ae75573aca75260d660331219983b9014b2ef","tarball":"https://registry.npmjs.org/@daanvanhulsen/granola-mcp/-/granola-mcp-1.0.1.tgz","fileCount":3,"integrity":"sha512-+iIPf/4fcZaYakx0OxI69bfqeTrog/k6IK4QasUSriOqDguOqI9IgCg6VkCtMlaTcrnY7647o24/92JiFjpNPw==","signatures":[{"sig":"MEYCIQCg6vFQAJCNGAw0fvnQ0UfbgzkaMBPBs40IA6tQ6kzYagIhAOTrvuoxBj0RuFMQz9IG824EcJK4yIELsJAGPNZsa/wa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6793},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"a97d62d12ac3b756d0becd15e43f0b5263056b56","scripts":{"dev":"tsc-watch --onSuccess \"node dist/index.js\"","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","rebuild":"npm run clean && npm run build"},"_npmUser":{"name":"daanvanhulsen","email":"daan@minimum.studio"},"_npmVersion":"10.1.0","description":"MCP tool for Granola","directories":{},"_nodeVersion":"20.9.0","dependencies":{"zod":"^3.22.4","ts-node":"^10.9.2","typescript":"^5.3.3","@modelcontextprotocol/sdk":"^1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"tsc-watch":"^6.0.4","typescript":"^5.3.3","@types/node":"^20.11.19"},"_npmOperationalInternal":{"tmp":"tmp/granola-mcp_1.0.1_1747235816808_0.645144148992679","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@daanvanhulsen/granola-mcp","version":"1.0.2","_id":"@daanvanhulsen/granola-mcp@1.0.2","maintainers":[{"name":"daanvanhulsen","email":"daan@minimum.studio"}],"bin":{"granola-mcp":"dist/index.js"},"dist":{"shasum":"ad5e1c80b433f508661fb8c381b70c2bb2f35062","tarball":"https://registry.npmjs.org/@daanvanhulsen/granola-mcp/-/granola-mcp-1.0.2.tgz","fileCount":3,"integrity":"sha512-5aaAUW1kFtyye+tsCsjwW6cAB2DCL0Jp4Ok4iA8AUTKJz8v7X7L65e4hBiTCTwglMrwGvBlpAvw/X4CJZuBE4w==","signatures":[{"sig":"MEQCIEM93hKUffS6hX1xQhzSuJuAdaF2sFvq7b0vcz63IfGfAiA+paw8cV64bU23zIt2xCXtmiWWhehRBOUvd4DUR4OVMA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6813},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"a97d62d12ac3b756d0becd15e43f0b5263056b56","scripts":{"dev":"tsc-watch --onSuccess \"node dist/index.js\"","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","rebuild":"npm run clean && npm run build"},"_npmUser":{"name":"daanvanhulsen","email":"daan@minimum.studio"},"_npmVersion":"10.1.0","description":"MCP tool for Granola","directories":{},"_nodeVersion":"20.9.0","dependencies":{"zod":"^3.22.4","ts-node":"^10.9.2","typescript":"^5.3.3","@modelcontextprotocol/sdk":"^1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"tsc-watch":"^6.0.4","typescript":"^5.3.3","@types/node":"^20.11.19"},"_npmOperationalInternal":{"tmp":"tmp/granola-mcp_1.0.2_1747236161327_0.7789530078617244","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@daanvanhulsen/granola-mcp","version":"1.0.3","_id":"@daanvanhulsen/granola-mcp@1.0.3","maintainers":[{"name":"daanvanhulsen","email":"daan@minimum.studio"}],"bin":{"granola-mcp":"dist/index.js"},"dist":{"shasum":"a6e10611716de4bdd546c116467c1b985d0927da","tarball":"https://registry.npmjs.org/@daanvanhulsen/granola-mcp/-/granola-mcp-1.0.3.tgz","fileCount":3,"integrity":"sha512-tV5s3wDEN2iVzhmPdxKMe6Jk/KxadJhs9hN6eB5A/uxn40ZC3Hr/WXONY6gOKvEQ77rqtEI7QvWyLPs1W1Q8EQ==","signatures":[{"sig":"MEUCIAoItHYGT/6T1vj4CPkDTS+XabpqYyyMJz0E/3R5tsvyAiEA9EMh2lE4qdJU6BuJT7xloA8cqHe40ujKhdPhCBJ8xMY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6813},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"a97d62d12ac3b756d0becd15e43f0b5263056b56","scripts":{"dev":"tsc-watch --onSuccess \"node dist/index.js\"","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","rebuild":"npm run clean && npm run build"},"_npmUser":{"name":"daanvanhulsen","email":"daan@minimum.studio"},"_npmVersion":"10.1.0","description":"MCP tool for Granola","directories":{},"_nodeVersion":"20.9.0","dependencies":{"zod":"^3.22.4","ts-node":"^10.9.2","typescript":"^5.3.3","@modelcontextprotocol/sdk":"^1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"tsc-watch":"^6.0.4","typescript":"^5.3.3","@types/node":"^20.11.19"},"_npmOperationalInternal":{"tmp":"tmp/granola-mcp_1.0.3_1747236433424_0.630175168556314","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@daanvanhulsen/granola-mcp","version":"1.0.4","_id":"@daanvanhulsen/granola-mcp@1.0.4","maintainers":[{"name":"daanvanhulsen","email":"daan@minimum.studio"}],"bin":{"granola-mcp":"dist/index.js"},"dist":{"shasum":"d58ea115070ce232a79d7d035c9cf203f2219cbc","tarball":"https://registry.npmjs.org/@daanvanhulsen/granola-mcp/-/granola-mcp-1.0.4.tgz","fileCount":3,"integrity":"sha512-DNL+gBCP7UCgsdQIlyLSXAAqAGUouEhMCPJWQKBsSmSdJlM0gkM/AF4PBb5nF6hOF4/+nM7tHXG5n5jbB3tJyw==","signatures":[{"sig":"MEQCIHAwJYC058r/Vkuz1qJddVbz7Pb2VzK0BInRmp3ijDuqAiASqzrtXeJApIvPKSLee619NXrpxpzM9bf3eCZ3+qj8mA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6813},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"a97d62d12ac3b756d0becd15e43f0b5263056b56","scripts":{"dev":"tsc-watch --onSuccess \"node dist/index.js\"","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","clean":"rm -rf dist","start":"node dist/index.js","rebuild":"npm run clean && npm run build"},"_npmUser":{"name":"daanvanhulsen","email":"daan@minimum.studio"},"_npmVersion":"10.1.0","description":"MCP tool for Granola","directories":{},"_nodeVersion":"20.9.0","dependencies":{"zod":"^3.22.4","ts-node":"^10.9.2","typescript":"^5.3.3","@modelcontextprotocol/sdk":"^1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"tsc-watch":"^6.0.4","typescript":"^5.3.3","@types/node":"^20.11.19"},"_npmOperationalInternal":{"tmp":"tmp/granola-mcp_1.0.4_1747236678940_0.821869071182489","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@daanvanhulsen/granola-mcp","version":"1.0.5","description":"MCP tool for Granola","type":"module","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","start":"node dist/index.js","dev":"tsc-watch --onSuccess \"node dist/index.js\"","clean":"rm -rf dist","rebuild":"npm run clean && npm run build","test":"echo \"Error: no test specified\" && exit 1"},"dependencies":{"@modelcontextprotocol/sdk":"^1.4.0","ts-node":"^10.9.2","typescript":"^5.3.3","zod":"^3.22.4"},"devDependencies":{"@types/node":"^20.11.19","typescript":"^5.3.3","tsc-watch":"^6.0.4"},"bin":{"granola-mcp":"dist/index.js"},"_id":"@daanvanhulsen/granola-mcp@1.0.5","gitHead":"f95aeed284e6cb828c796ed710ad40ab187fe6d4","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-h6cZ4d2qiwveyBUsImgaY0KPvtJaZ2UH+n/N66Q0CW/RVzywB5bNPfI/jKc2chBSucxDB67K6R+m/0XH3psuVA==","shasum":"a75e7d0ae8db3b1fffb65083c4e6560fdc3bb8eb","tarball":"https://registry.npmjs.org/@daanvanhulsen/granola-mcp/-/granola-mcp-1.0.5.tgz","fileCount":3,"unpackedSize":5607,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCu9CHfyr3t3d6AhIvwM1WaafZO5A8vdAriDVWevPjviQIhAMjlW/HhtXbg2KcVB2ZteIaTeuGUfR9dX0lJtblpqihr"}]},"_npmUser":{"name":"daanvanhulsen","email":"daan@minimum.studio"},"directories":{},"maintainers":[{"name":"daanvanhulsen","email":"daan@minimum.studio"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/granola-mcp_1.0.5_1747237397388_0.589743045184532"},"_hasShrinkwrap":false}},"time":{"created":"2025-05-14T13:57:20.722Z","modified":"2025-05-14T15:43:17.766Z","1.0.0":"2025-05-14T13:57:20.914Z","1.0.1":"2025-05-14T15:16:56.975Z","1.0.2":"2025-05-14T15:22:41.519Z","1.0.3":"2025-05-14T15:27:13.600Z","1.0.4":"2025-05-14T15:31:19.148Z","1.0.5":"2025-05-14T15:43:17.565Z"},"description":"MCP tool for Granola","maintainers":[{"name":"daanvanhulsen","email":"daan@minimum.studio"}],"readme":"# Granola Transcript MCP Tool\n\nThis tool provides a command-line MCP server that fetches the transcript for a Granola meeting document using the Granola API. It is implemented in `src/index.ts` and exposes a single command: `getGranolaTranscript`.\n\n## What It Does\n- Accepts a Granola document ID (from a meeting link or notes link).\n- Calls the Granola API to fetch the transcript for that document.\n- Returns an array of transcript entries, each containing:\n  - `start_timestamp`\n  - `end_timestamp`\n  - `source`\n  - `text`\n\n## Usage\n- The tool is designed to be run as an MCP server (e.g., for integration with Cursor or other MCP-compatible clients).\n- You must provide your Granola API key as the `GRANOLA_API_KEY` environment variable.\n\n## How to Find Your Granola API Key\n\nTo use this tool, you need your Granola API key (Bearer token). Here's how to find it using the Granola desktop (Mac) app:\n\n1. **Open the Granola desktop app** (or Mac app).\n2. In the top menu bar, click on **View** > **Toggle Developer Tools**.\n3. In the Developer Tools window, go to the **Network** tab.\n4. **Refresh the Granola app** by pressing `Cmd + R`.\n5. In the Network tab, click on any network request.\n6. Look for the **Authorization** header in the request headers.\n7. The value will look like: `Bearer <YOUR_API_KEY>`.\n8. **Copy only the token part** (everything after `Bearer `). This is your API key.\n\n**Keep your API key secure and do not share it publicly.**","readmeFilename":"README.md"}