Date: March 28, 2026
Purpose: Step-by-step guide to test Iris HTTP mode
Run these commands to verify setup:
cd ~/Devel/UncleTallest/organizations/continuity-bridge/iris-mcp-server
# 1. Check dependencies installed
npm list cors
# Should show: [email protected] (or similar)
# 2. Check OAuth tokens exist
ls -la data/*.db
# Should show: iris.db with oauth tokens
# 3. Check build exists
ls -la dist/http-server.js
# Should show the compiled fileRun the setup wizard:
npm run setup:browserYou'll need:
- Open claude.ai in Chrome
- Press F12 (DevTools)
- Go to Network tab
- Refresh page or click around
- Look for requests to
/api/organizations/[UUID]/... - Copy the UUID (looks like:
f336d0bc-b841-465b-8045-024475c079dd)
- Still in Network tab
- Click on any
/api/request - Go to Headers tab
- Scroll to Request Headers
- Find
cookie:header - Copy the ENTIRE value (very long string starting with
sessionKey=sk-ant-sid...)
Enter your Gmail address (the one with Drive access)
Wizard will save to: ~/.claude/config/iris-browser-session.json
npm run build:httpShould see:
- TypeScript compilation output
- No errors
dist/http-server.jscreated
npm run httpExpected output:
🌈 Iris HTTP Server (Browser Mode) running at:
http://localhost:3001
Session configured: ✓
Organization: f336d0bc...
User: [email protected]
Endpoints:
POST /api/drive/write
GET /api/drive/read
GET /api/drive/list
POST /api/drive/create-folder
POST /api/drive/move
DELETE /api/drive/delete
GET /health
Leave this running in the terminal!
Open a new terminal and run:
curl http://localhost:3001/healthExpected response:
{
"status": "ok",
"service": "iris-http",
"mode": "browser",
"session_configured": true
}✅ If this works, the server is running!
Option A: Using curl
# Get your session cookie from browser
# Press F12 → Application tab → Cookies → claude.ai
# Copy the entire cookie string
curl -H "Cookie: sessionKey=sk-ant-sid..." \
http://localhost:3001/api/drive/list?path=FeannogOption B: From Browser Console (Easier)
- Open claude.ai
- Press F12 → Console tab
- Paste this code:
fetch('http://localhost:3001/api/drive/list?path=Feannog', {
headers: { Cookie: document.cookie }
})
.then(r => r.json())
.then(d => console.log(d))
.catch(e => console.error(e))Expected output:
{
"path": "Feannog",
"items": [
{
"name": "00-WELCOME.md",
"type": "file",
...
},
...
]
}✅ If you see your Feannog folder contents, Drive integration works!
From browser console on claude.ai:
fetch('http://localhost:3001/api/drive/write', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Cookie': document.cookie
},
body: JSON.stringify({
path: 'test/http-mode-test.txt',
content: 'Hello from HTTP mode! ' + new Date().toISOString()
})
})
.then(r => r.json())
.then(d => {
console.log('✅ Success!', d);
console.log('View at:', d.webViewLink);
})
.catch(e => console.error('❌ Error:', e))Expected output:
{
"created": true,
"path": "test/http-mode-test.txt",
"fileId": "1abc...",
"webViewLink": "https://drive.google.com/file/d/1abc..."
}Then check Google Drive:
- Should see
test/folder - Should see
http-mode-test.txtfile - Content should match
✅ If file appears in Drive, write works!
# Open in browser
firefox ~/Devel/UncleTallest/organizations/continuity-bridge/iris-mcp-server/bookmarklet.html
# or
google-chrome ~/Devel/UncleTallest/organizations/continuity-bridge/iris-mcp-server/bookmarklet.html- Show bookmarks bar (Ctrl+Shift+B)
- Drag the "💾 Save to Drive" button to bookmarks bar
- You should see it appear in bookmarks
- Go to claude.ai
- Select some text (a paragraph or code block)
- Click the "💾 Save to Drive" bookmarklet
- Enter a path like:
bookmarklet-tests/first-test.txt - Watch for notification:
- Should show "💾 Saving to Drive..."
- Then "✅ Saved!" with link to Drive
- Click "Open in Drive →" to verify
✅ If you can save from claude.ai, bookmarklet works!
Error: Cannot find module 'cors'
npm installError: No browser session configured
npm run setup:browserCause: Session cookie expired or invalid
Fix:
# Log into claude.ai in browser
# Then re-run setup
npm run setup:browser
# Restart server
# Press Ctrl+C in server terminal, then:
npm run httpError: Access to fetch... blocked by CORS policy
Check server logs - should allow https://claude.ai
Temporary workaround:
Test from localhost:3000 instead (also allowed in CORS config)
Error: OAuth token expired
Fix:
- Run OAuth dashboard:
npm run oauth - Re-authenticate in browser
- Restart HTTP server
Common causes:
- Forgot to select text first (select something!)
- HTTP server not running (check terminal)
- Session cookie expired (re-run setup:browser)
- Wrong port (should be 3001)
Debug: Open browser console (F12) and look for error messages
Test each of these in order:
- Health endpoint responds (curl test)
- List endpoint returns Feannog contents (browser console)
- Write endpoint creates file in Drive (browser console)
- File appears in Google Drive correctly
- Bookmarklet installs in browser
- Bookmarklet saves selected text
- Notification shows success
- "Open in Drive" link works
If all checked, HTTP mode is fully functional! 🎉
-
Save to Drive from Claude conversations:
- Select Claude's response
- Click bookmarklet
- Save as:
claude-responses/YYYY-MM-DD-topic.txt
-
Create organized structure:
notes/daily/- Daily notescode-snippets/- Code from Clauderesearch/- Research summariesideas/- Brainstorms and ideas
-
Test edge cases:
- Very long text
- Special characters
- Nested folder paths
- Existing file updates
-
Consider browser extension (v0.3.0):
- More polished UI
- Automatic cookie extraction
- Folder picker
- Better error handling
Status: Ready for testing!
Time: ~15 minutes for complete test
Difficulty: Easy (just follow steps)
Have fun! 🚀