Glean's plugin for Claude Code and Claude Cowork. This repo is a single-plugin marketplace.
Today it ships one plugin:
glean-experimental— adds two static tools,find_skillsandrun_tool, that let the agent discover Glean-hosted skills for enterprise apps (Jira, Slack, Google Workspace, Salesforce, etc.) and invoke their downstream tools via Glean's MCP gateway. Once the user has authenticated, the plugin also surfaces a small allow-list of Glean's first-class tools — currentlysearchandread_document— directly, with schemas pulled from the remote MCP server.
/plugin marketplace add gleanwork/glean-experimental-plugins
/plugin install glean-experimental@glean-experimental-plugins
- Open the plugin picker.
- Click Add marketplace, choose GitHub, and enter
gleanwork/glean-experimental-plugins. - Once the marketplace syncs, install the glean-experimental plugin from it.
The first tool call triggers OAuth sign-in to Glean via the setup tool.
The agent's skill walks the user through the sign-in URL and paste-back
flow. After sign-in, OAuth credentials are cached to ~/.glean/ and reused
across sessions — you won't be prompted again until the refresh token
expires.
# Claude Code
/plugin marketplace update glean-experimental-plugins
# Cowork: the plugin picker has a "Sync" / "Check for updates"
# button on the marketplace entry.
You can point the marketplace at a specific git branch, tag, or commit:
# Install from a specific branch (e.g. a PR branch)
/plugin marketplace add gleanwork/glean-experimental-plugins@branch-name
/plugin install glean-experimental@glean-experimental-plugins
# Or update an existing marketplace to a different branch
/plugin marketplace remove glean-experimental-plugins
/plugin marketplace add gleanwork/glean-experimental-plugins@branch-nameYou can also pin to a branch in settings.json:
{
"marketplaces": [
{
"name": "glean-experimental-plugins",
"source": "https://github.com/gleanwork/glean-experimental-plugins",
"sourceType": "git",
"branch": "mohit-baseline-marketplace-layout"
}
]
}For local development, point the marketplace at your local checkout instead:
/plugin marketplace add /path/to/glean-experimental-pluginsThen just git checkout whichever branch you want to test.
- Sign-in loop — the cached OAuth provider state may be stale. Delete
~/.glean/mcp-credentials.jsonand retry. GLEAN_MCP_SERVER_URL is required— the plugin's.mcp.jsonwasn't picked up by the host. Reinstall; if that fails, open an issue.
Prerequisites: Node 22+, npm.
npm install
npm test # vitest
npm run typecheck # tsc --noEmit
npm run build # esbuild → plugins/glean/dist/index.jsSource is at the repo root (src/, tests/, scripts/). Packaged
runtime lives under plugins/glean/. See the Layout section below.
- Bump
versioninplugins/glean/.claude-plugin/plugin.json. npm test && npm run typecheck— verify clean.- Commit, tag, and push:
git tag v<version> git push && git push --tags
- Draft a release on GitHub.
.claude-plugin/
marketplace.json Top-level marketplace manifest for Claude Code
/ Cowork. Points at ./plugins/glean as the
plugin source.
plugins/glean/
.claude-plugin/
plugin.json Plugin manifest — name, version, description
.mcp.json MCP server invocation read by Claude Code /
Cowork. Source of truth.
dist/index.js Built server bundle (every dep inlined; produced
by `npm run build`; checked in)
skills/glean_run/ Skill that tells the agent how to use the
tools. Uses the open SKILL.md standard.
start.sh Bash launcher that anchors PROJECT_DIR to the
host's spawn cwd, then execs node on the bundle
package.json Minimal "type": "module" manifest so Node
treats dist/index.js as ESM at runtime
src/ TypeScript sources for the MCP server
tests/ Vitest suite
scripts/ build.mjs — esbuild bundler
package.json Top-level dev config — deps, npm scripts
tsconfig.json TypeScript config for the dev tree
Apache 2.0. See LICENSE.