Claude Asset Tagging Agent

Claude Asset Tagging Agent

An MCP server that enables AI agents to read files from public Google Drive folders, automatically categorize and tag them using Claude, and write the tags back to file metadata.

Category
访问服务器

README

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 description field 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.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选