Claude Asset Tagging Agent
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Claude Asset Tagging AgentTag all assets in this public Google Drive folder: https://drive.google.com/drive/folders/123ABC"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Claude Asset Tagging Agent
Copyright © Nikko Griffin | HenzoStudios
Overview
---
The Claude Asset Tagging Agent is a robust Model Context Protocol (MCP) server that connects large language models directly to Google Drive. It operates as an autonomous agent that reads files from any public Google Drive folder link, categorizes and tags each asset via Claude, and securely writes those tags back into the Drive file's description metadata while applying a star for rapid filtering.
Built as a working portfolio demo and field-ready enablement lab.
https://github.com/user-attachments/assets/c8aaacb6-8ee3-4cce-bfa3-ebcc2ce76eab
---
Key Features
---
Universal Public Folder Access: Dynamically reads asset manifests from any public Google Drive folder link.
Automated Asset Categorization: Claude acts as a creative pipeline tool, parsing filenames and metadata to assign categories (e.g.,
Video,Design Asset,Render/Image,3D Asset).Metadata Write-Back: Automatically updates the
descriptionfield of files in Google Drive and stars processed assets.Dual MCP Transports: Includes both local Stdio execution and cloud-ready HTTP Streamable transport options.
---
The Architecture: Dual MCP Implementation
---
\\\\\\\[ Claude.ai / Custom Connector ]
│
▼ (Streamable HTTP / SSE)
\\\\\\\[ server-remote.js (Express + MCP SDK) ]
│
▼ (HTTP GET / JSON Web App Endpoint)
\\\\\\\[ Code.gs (Google Apps Script Gateway) ]
│
▼ (DriveApp Native API)
\\\\\\\[ Google Drive Workspace ]
\\\*\\\*The Architecture: Dual MCP Implementation\\\*\\\*
---
The Model Context Protocol establishes a standard client-server connection between AI agents and external data.
To ensure this tool can be run in any environment, this repository contains two distinct server implementations
pointing to a shared Google Apps Script microservice.
\\\*\\\*Remote HTTP Server (server-remote.js):\\\*\\\*
Utilizes the Streamable HTTP transport wrapped in an Express server.
Designed to be hosted on cloud platforms like Replit and connected directly to Claude.ai via Custom Connectors.
\\\*\\\*Local Stdio Server (server.js):\\\*\\\*
Utilizes standard input/output communication. The default mode for local development
and connecting to desktop clients like Claude Desktop.
\\\*\\\*The Backend Microservice (Code.gs):\\\*\\\*
A serverless Google Apps Script acts as the secured gateway, safely interacting
with Google's DriveApp API and bypassing the need for complex Google OAuth flows in the Node.js application.
\\\*\\\*Setup Instructions:\\\*\\\*
Replit \\\\\\\& Claude.ai Custom Connector
This guide walks through deploying the Remote HTTP server on Replit and connecting it to a free Claude.ai account
using a Custom Connector.
**\*\*\\\*\\\*Step 1: Deploy the Backend Microservice\\\*\\\*\*\***
Go to Google Apps Script and create a new project.
Paste the contents of Code.gs into the editor.
Click Deploy -> New deployment.
Select Web app, set access to "Anyone", and deploy. (No URL pasting required for the MCP server—the endpoint is
already configured in the JS files).
**\\\*\\\*Step 2: Spin up the Replit Server\\\*\\\***
Upload the project files to a Replit Node.js container.
Open the Replit Shell and install dependencies by running: npm install
Start the HTTP server by running: node server-remote.js
You should see a terminal output confirming the server is listening on 0.0.0.0:3000.
Grab the public URL provided by Replit's webview (e.g., https://your-repl-name.your-username.replit.dev).
**\\\*\\\*Step 3: Add to Claude.ai\\\*\\\***
Log into Claude.ai and navigate to Settings -> Connectors.
Click Add custom connector.
Paste your Replit URL and append /mcp to the very end of it (e.g., https://<YOUR-REPLIT-URL>.replit.dev/mcp).
Click Add.
**\\\*\\\*Step 4: Run the Agent\\\*\\\***
Start a new chat in Claude with your connector enabled and use a prompt like:
"Use the Asset Tagging agent to list all the files inside this Google Drive folder link: \\\\\\\[YOUR\\\\\\\_PUBLIC\\\\\\\_FOLDER\\\\\\\_LINK], then tag them."
Troubleshooting \\\\\\\& Known Issues
During development and testing, a few infrastructure and cloud-networking realities were encountered. If you run into issues, check here first:
**\\\*\\\*1. The "Folder ID Not Permitted" Error\\\*\\\***
Symptom: Claude returns an error saying the tool blocked the request because the Folder ID isn't permitted.
Cause: Google Apps Script does not automatically push saved code live. If you update Code.gs in the editor,
the active web URL still runs the old code.
Fix: In Google Apps Script, go to Deploy -> Manage deployments. Click the Edit (pencil) icon, change the
Version dropdown to New version, and click Deploy.
**\\\*\\\*2. "Failed to Connect" on First Try (Replit Cold Starts)\\\*\\\***
Symptom: When adding the connector or sending the very first prompt, Claude says the connection failed.
**\\\*\\\*Cause:\\\*\\\*** Free Replit containers go into a "sleep mode" after a few minutes of inactivity. When Claude pings
the server, Replit takes a few seconds to wake up (a cold start), which occasionally causes Claude's initial
handshake to time out.
**\\\*\\\*Fix:\\\*\\\*** Simply click Try Again or resend the prompt. Once the Replit container is awake, it will connect instantly.
**\\\*\\\*3.** Connector Timeouts on Bulk Tagging (Parallel Requests)\\\*\\\*
Symptom: Claude successfully tags one file but hits a "connector isn't responding" error on the rest of the files
in the folder.
**\\\*\\\*Cause:\\\*\\\*** When told to tag a list of files, the LLM fires a burst of parallel tag\\\\\\\_drive\\\\\\\_file tool calls all at the
exact same time. Because Google Apps Script takes 1-2 seconds to physically write metadata to each file, this data
bottleneck can trigger Claude's HTTP connector timeout threshold.
**\\\*\\\*Fix:\\\*\\\*** If a file times out, just tell Claude "Try tagging \\\\\\\[Filename] again." To prevent this entirely during bulk
operations, adjust your prompt to enforce sequential processing: "Tag the remaining files one by one, waiting for
each to finish before starting the next."
**\\\*\\\*4. "Your App is Not Running" / Replit Port Binding\\\*\\\***
Symptom: The Replit Preview pane shows a grey "Your app is not running" screen, or a browser returns a JSON Method
not allowed error.
**\\\*\\\*Cause:\\\*\\\*** By default, standard web apps bind to localhost (127.0.0.1), which makes them invisible to the outside internet.
**\\\*\\\*Fix:\\\*\\\*** This is already solved in the codebase! The createMcpExpressApp({ host: "0.0.0.0" }) configuration explicitly binds
the server to 0.0.0.0. Ignore the Replit browser preview—MCP HTTP servers are strictly API endpoints meant to receive POST
requests from LLMs, so rejecting a standard web browser view is proof that the security is working correctly.
**\\\*\\\*File Structure\\\*\\\***
---
server-remote.js — HTTP version for cloud hosting / Replit / Claude.ai connectors.
server.js — Stdio version for local testing / Claude Desktop.
Code.gs — Google Apps Script backend code (bypasses heavy OAuth).
package.json — Project dependencies (@modelcontextprotocol/sdk, express, zod).
Now you can simply tell Claude to organize your Google Drive with this simple prompt:
Use the Asset Tagging agent to list all the files inside this
Google Drive folder link: Your Google Drive Link
Once listed, analyze each asset and tag all of them using the batch tool.This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Henzostudios/mcp-google-drive-agent-replit'
If you have feedback or need assistance with the MCP directory API, please join our Discord server