ð Clarifai MCP Server (unofficial)
ããŒã«ã«ð Clarifai MCP Server (unofficial) ã«ã€ããŠ
MCP ã¯ã©ã€ã¢ã³ãã Clarifai API ã«æ¥ç¶ããéå ¬åŒã®ããŒã«ã« MCP ãµãŒããŒã§ããç»åçæãæšè«ã«å ããæ€çŽ¢å¯èœãªèªã¿åãå°çšãªãœãŒã¹ãæäŸãã倧ããªãã€ããªçµæã«ãã LLM ã³ã³ããã¹ãã®å§è¿«ãé¿ããŸãã
äž»ãªæ©èœ
- 01ããã¹ãããã³ããããç»åãçæ
- 02ããŒã«ã«ç»åã URL ãæšè«
- 03ããŒã«ã«ãã¡ã€ã«ã Clarifai ã«ã¢ããããŒã
- 04ããã¹ããç»åã§å ¥åãæ€çŽ¢
- 05Clarifai ãªãœãŒã¹ã®äžèЧã»èªã¿åã
掻çšã·ãŒã³
- 01AI ãšãŒãžã§ã³ãã®æç€ºããç»åãçæ
- 02ããŒã«ã«ç»åã説æã»åæ
- 03ããã¹ããç»åã®é¡äŒŒåºŠã§ Clarifai ã®å ¥åãæ€çŽ¢
MCP 察å¿
stdio çµç±ã§ Clarifai ã®æäœã MCP ããŒã«ããã³èªã¿åãå°çšãªãœãŒã¹ãšããŠæäŸããŸããã¯ã©ã€ã¢ã³ãããç»åçæãæšè«ãæ€çŽ¢ãClarifai ãšã³ãã£ãã£ã®äžèЧååŸãšèªã¿åããã§ããŸãã
èšå®
ããŒã«ã«ãµãŒããŒã®èšå®ã¯ã©ã®ã¯ã©ã€ã¢ã³ãã§ãå ±éã§ããã³ããŒããŠã¯ã©ã€ã¢ã³ãã® MCP èšå®ãã¡ã€ã«ã«è²Œãä»ããŠãã ããã
ãã®ãµãŒããŒã®ããã±ãŒãžããªã¢ãŒããšã³ããã€ã³ãã¯ãŸã ååŸã§ããŠããŸããããããžã§ã¯ãã® README ã®æé ã«åŸã£ãŠãã ããã
ããŒã«
ããŒã«ã«ãµãŒããŒã®ããŒã«ã¯ãã·ã³äžã§èµ·åããŠåããŠååŸã§ããŸããã¡ã³ãããŒã¯ãŸã ããŒã«äžèЧãæäŸããŠããŸããã
詳现
ð Clarifai MCP ãµãŒããŒïŒéå ¬åŒïŒ
ãã®ããã¯ãã€ãããžã§ã¯ãã¯ãClarifai API ãžã®ããªããžãšããŠæ©èœãã Model Context ProtocolïŒMCPïŒãµãŒããŒãæäŸããŸãããŠãŒã¶ãŒã®ãã·ã³äžã§ïŒã€ãŸãããŒã«ã«ã§ïŒå®è¡ããããšãæ³å®ããŠããŸããMCP ã¯ã©ã€ã¢ã³ãïŒIDE æ¡åŒµæ©èœãªã©ïŒã¯ãéããã€ããªçµæã§ LLM ã®ã³ã³ããã¹ããå§è¿«ããããšãªããæšæºã® MCP ãªã¯ãšã¹ãã䜿ã£ãŠãç»åçæãæšè«ãªã©ã® Clarifai ã®æ©èœãå©çšã§ããŸãã
MCP ãµãŒããŒãèšå®ããŠã·ãŒã ã¬ã¹ã«é£æºãã
éåžžããµãŒããŒã¯ MCP ã¯ã©ã€ã¢ã³ãã®ãã¬ãŒã ã¯ãŒã¯ã«ãã£ãŠèªåçã«èµ·åãããŸãïŒäŸïŒVS Code ã®èšå®çµç±ïŒãèšå®ã§ã¯éåžžããã«ãæžã¿ãã€ããªã®ãã¹ãšãClarifai PAT ãªã©ã®å¿ èŠãªã³ãã³ãã©ã€ã³åŒæ°ãæå®ããŸããGoïŒããŒãžã§ã³ 1.23 以éïŒãå¿ èŠã§ãã
cd ~
git clone [email protected]:tot-ra/clarifai-mcp-server-local.git
cd clarifai-mcp-server-local
go mod tidy
ãã€ããªããã«ãããïŒ
go build ã³ãã³ãã䜿ããcmd/server ãã£ã¬ã¯ããªå
ã®ã¡ã€ã³ããã±ãŒãžããã«ãããŸããå¿
èŠã«å¿ããŠåºåå
ãšå¯Ÿè±¡ã¢ãŒããã¯ãã£ãæå®ããŠãã ããïŒmacOS ARM ã®äŸïŒïŒ
# For macOS ARM
make build
# For Linux AMD64
# GOOS=linux GOARCH=amd64 go build -o ./mcp_binary ./...
# For Windows AMD64
# GOOS=windows GOARCH=amd64 go build -o ./mcp_binary.exe ./...
ããã«ããããããžã§ã¯ãã®ã«ãŒããã£ã¬ã¯ããªã« mcp_binary ãšããååã®å®è¡å¯èœãã¡ã€ã«ïŒWindows ã§ã¯ mcp_binary.exeïŒãäœæãããŸãã
MCP èšå®ã®èšè¿°äŸïŒcline_mcp_settings.jsonïŒãããšãã° Cline ã§ã¯æ¬¡ã®ããã«ãªããŸãã
{
"mcpServers": {
"clarifai": {
"command": "~/clarifai-mcp-server-local/mcp_binary",
"args": [
"--pat", "YOUR_CLARIFAI_PAT",
"--output-path", "~/Desktop/",
"--default-user-id", "your_user_id",
"--default-app-id", "your_app_id",
],
}
}
}
YOUR_CLARIFAI_PAT ã Clarifai PAT ããŒã¯ã³ã«çœ®ãæããŠãã ããã
ãã¹ã
ããã€ãã®ããã±ãŒãžã«åäœãã¹ãã远å ãããŠããŸãããã¹ãŠã®ãã¹ããå®è¡ãããã£ãã·ã¥ãç¡å¹ã«ããŠã詳现ãªåºåïŒåã ã®ãã¹ãåãšã¹ããŒã¿ã¹ãå«ãïŒã確èªããã«ã¯ã次ã®ã³ãã³ããå®è¡ããŸãã
cd clarifai-mcp-server-local
go test -v -count=1 ./...
æ©èœ
çŸåšããµãŒããŒã¯æ¬¡ã® MCP æ©èœãå ¬éããŠããŸãã
ããŒã«
-
upload_fileïŒããŒã«ã«ãã¡ã€ã«ãå ¥åãšã㊠Clarifai ã«ã¢ããããŒãããŸãã- å
¥åïŒ
filepathïŒå¿ é ãããŒã«ã«ãã¡ã€ã«ãžã®çµ¶å¯Ÿãã¹ïŒãuser_idãapp_idïŒä»»æïŒã - åºåïŒã¢ããããŒãæåæã®ããã¹ã確èªã¡ãã»ãŒãžãš API ã¬ã¹ãã³ã¹ã®è©³çްã
- å
¥åïŒ
-
generate_imageïŒæå®ããããŸãã¯ããã©ã«ãã® Clarifai ããã¹ãç»åçæã¢ãã«ã䜿ã£ãŠãããã¹ãããã³ããã«åºã¥ãç»åãçæããŸãã- å
¥åïŒ
text_promptïŒå¿ é ïŒãmodel_idãuser_idãapp_idïŒä»»æïŒã - åºåïŒBase64 ãšã³ã³ãŒããããç»åããŒã¿ïŒå°ããªç»åã®å ŽåïŒããŸãã¯ãã¡ã€ã«ãã¹ïŒèšå®æžã¿ã®
--output-pathã«ä¿åããã倧ããªç»åã®å ŽåïŒã
- å
¥åïŒ
ããšãã°ããŠãŒã¶ãŒãããã³ãããå ¥åãããšãAI ãšãŒãžã§ã³ããèªåçã«ç»åçæãåŒã³åºãã çµæããã¹ã¯ãããã«ä¿åããŸãã
Clarifaiã§ç«ã®ç»åã3æçæããŠãã ããã


clarifai_image_by_pathïŒæå®ããããŸãã¯ããã©ã«ãã® Clarifai ã¢ãã«ã䜿ã£ãŠãããŒã«ã«ç»åãã¡ã€ã«ã«å¯ŸããŠæšè«ãå®è¡ããŸãã- å
¥åïŒ
filepathïŒå¿ é ãããŒã«ã«ç»åãžã®ãã¹ïŒãmodel_idãuser_idãapp_idïŒä»»æïŒã - åºåïŒæšè«çµæã®ããã¹ãã«ãã説æïŒæ€åºãããæŠå¿µãªã©ïŒã
- å
¥åïŒ
my_source_folder/images/å ã®ç»åãclarifaiã§åŠçããŠãã ããã
-
clarifai_image_by_urlïŒæå®ããããŸãã¯ããã©ã«ãã® Clarifai ã¢ãã«ã䜿ã£ãŠãç»å URL ã«å¯ŸããŠæšè«ãå®è¡ããŸãã- å
¥åïŒ
image_urlïŒå¿ é ïŒãmodel_idãuser_idãapp_idïŒä»»æïŒã - åºåïŒæšè«çµæã®ããã¹ãã«ãã説æïŒæ€åºãããæŠå¿µãªã©ïŒã
- å
¥åïŒ
-
search_by_textïŒClarifai ã® PostInputSearches ã䜿ã£ãŠãããã¹ãã¯ãšãªã«åºã¥ãå ¥åãæ€çŽ¢ããŸãã- å
¥åïŒ
queryïŒå¿ é ãããã¹ãã¯ãšãªæååïŒãuser_idãapp_idãpageãper_pageïŒä»»æïŒã - åºåïŒæ€çŽ¢çµæïŒãããïŒãå«ã JSON æååã
- å
¥åïŒ
-
search_by_filepathïŒClarifai ã® PostInputSearches ã䜿ã£ãŠãããŒã«ã«ç»åãã¡ã€ã«ãšã®é¡äŒŒæ§ã«åºã¥ãå ¥åãæ€çŽ¢ããŸãã- å
¥åïŒ
filepathïŒå¿ é ãããŒã«ã«ç»åãã¡ã€ã«ãžã®çµ¶å¯Ÿãã¹ïŒãuser_idãapp_idãpageãper_pageïŒä»»æïŒã - åºåïŒæ€çŽ¢çµæïŒãããïŒãå«ã JSON æååã
- å
¥åïŒ
-
search_by_urlïŒClarifai ã® PostInputSearches ã䜿ã£ãŠãç»å URL ãšã®é¡äŒŒæ§ã«åºã¥ãå ¥åãæ€çŽ¢ããŸãã- å
¥åïŒ
image_urlïŒå¿ é ãç»åã® URLïŒãuser_idãapp_idãpageãper_pageïŒä»»æïŒã - åºåïŒæ€çŽ¢çµæïŒãããïŒãå«ã JSON æååã
- å
¥åïŒ
### ãªãœãŒã¹ïŒèªã¿åãå°çšïŒ
ãµãŒããŒã¯ããŸããŸãª Clarifai ãšã³ãã£ãã£ãèªã¿åãå°çšã® MCP ãªãœãŒã¹ãšããŠå
¬éããŠãããã¯ã©ã€ã¢ã³ãã¯æšæºã® MCP ã¡ãœããïŒresources/listãresources/readïŒã䜿çšããŠããŒã¿ã®äžèŠ§è¡šç€ºãæ€çŽ¢ãèªã¿åããè¡ããŸãããšã³ãã£ãã£ã®äœæãæŽæ°ãåé€ãªã©ã®æäœã¯ãMCP ããŒã«ã䜿çšããŠè¡ããŸãã
-
ãªãœãŒã¹ URI ã¹ããŒã ïŒ ãªãœãŒã¹ã¯äžè²«ãã URI æ§é ã«åŸããŸãïŒ
clarifai://{user_id}/{app_id}/{resource_type}[/{resource_id}][?query_params]ã¢ãã«ããŒãžã§ã³ãããŒã¿ã»ããããŒãžã§ã³ãªã©ã®ãã¹ãããããªãœãŒã¹ã¯ã次ã®ãããªåœ¢åŒã«åŸããŸãïŒclarifai://{user_id}/{app_id}/models/{model_id}/versions[/{version_id}]clarifai://{user_id}/{app_id}/datasets/{dataset_id}/versions[/{version_id}]clarifai://{user_id}/{app_id}/inputs/{input_id}/annotations -
ãµããŒããããŠãããªãœãŒã¹ãã³ãã¬ãŒãïŒ
resources/templates/listïŒïŒ ãµãŒããŒã¯ãå©çšå¯èœãªãªãœãŒã¹ãæ€åºããããã®ãã³ãã¬ãŒããæäŸããŸãïŒ- InputsïŒ äžèŠ§è¡šç€ºãæ€çŽ¢ãååŸ
clarifai://{user_id}/{app_id}/inputsclarifai://{user_id}/{app_id}/inputs?query={search_term}clarifai://{user_id}/{app_id}/inputs/{input_id}
- AnnotationsïŒ äžèŠ§è¡šç€ºãæ€çŽ¢ãååŸãInput ããšã®äžèŠ§è¡šç€º
clarifai://{user_id}/{app_id}/annotationsclarifai://{user_id}/{app_id}/annotations?query={search_term}clarifai://{user_id}/{app_id}/annotations/{annotation_id}clarifai://{user_id}/{app_id}/inputs/{input_id}/annotations
- ModelsïŒ äžèŠ§è¡šç€ºãæ€çŽ¢ãååŸ
clarifai://{user_id}/{app_id}/modelsclarifai://{user_id}/{app_id}/models?query={search_term}clarifai://{user_id}/{app_id}/models/{model_id}
- Model VersionsïŒ äžèŠ§è¡šç€ºãååŸ
clarifai://{user_id}/{app_id}/models/{model_id}/versionsclarifai://{user_id}/{app_id}/models/{model_id}/versions/{version_id}
- DatasetsïŒ äžèŠ§è¡šç€ºãååŸ
clarifai://{user_id}/{app_id}/datasetsclarifai://{user_id}/{app_id}/datasets/{dataset_id}
- Dataset VersionsïŒ äžèŠ§è¡šç€ºïŒç¹å®ã®ããŒãžã§ã³ã®èªã¿åãã¯ãŸã å®è£
ãããŠããŸããïŒ
clarifai://{user_id}/{app_id}/datasets/{dataset_id}/versions
- InputsïŒ äžèŠ§è¡šç€ºãæ€çŽ¢ãååŸ
-
äžèŠ§è¡šç€ºïŒ
resources/listïŒïŒ- ãã³ãã¬ãŒã URIïŒäŸïŒ
clarifai://.../inputsïŒã䜿çšããŠããã®çš®é¡ã®ãªãœãŒã¹ãäžèŠ§è¡šç€ºããŸããcursorãã©ã¡ãŒã¿ãŒïŒããŒãžçªå·ã衚ããŸãïŒã«ããããŒãžããŒã·ã§ã³ã«å¯Ÿå¿ããŠããŸãã - æ€çŽ¢ãã³ãã¬ãŒã URIïŒäŸïŒ
clarifai://.../inputs?query=catsïŒã䜿çšããŠããªãœãŒã¹ãæ€çŽ¢ããŸãã - URI ãæå®ããã«åŒã³åºããšã
--default-user-idãš--default-app-idãã©ã°ã§èšå®ãããã³ã³ããã¹ãå ã®å ¥åãããã©ã«ãã§äžèŠ§è¡šç€ºãããŸãïŒèšå®ãããŠããå ŽåïŒã
- ãã³ãã¬ãŒã URIïŒäŸïŒ
-
èªã¿åãïŒ
resources/readïŒïŒ- ç¹å®ã®ãªãœãŒã¹ URIïŒäŸïŒ
clarifai://.../models/{model_id}ïŒã䜿çšããŠã察å¿ãã Clarifai ãªããžã§ã¯ãïŒInputãModelãAnnotation ãªã©ïŒã®è©³çŽ°å šäœãååŸããŸãã - çµæã¯ããªãœãŒã¹ã³ã³ãã³ãã®
textãã£ãŒã«ãã« JSON æååãšããŠè¿ãããŸãã
- ç¹å®ã®ãªãœãŒã¹ URIïŒäŸïŒ
ã¢ãŒããã¯ãã£ã®æŠèŠ
ãµãŒããŒã¯æšæºå ¥åïŒstdinïŒã§ JSON-RPC 2.0 ãªã¯ãšã¹ããåŸ ã¡åããæšæºåºåïŒstdoutïŒã§å¿çãéä¿¡ããŸããããã«ãããMCP ã¯ã©ã€ã¢ã³ããã¬ãŒã ã¯ãŒã¯ãšã·ãŒã ã¬ã¹ã«çµ±åã§ããŸãã
ã³ã³ããŒãã³ãæ§æïŒ
ã³ãŒãããŒã¹ã¯ããã€ãã®äž»èŠãªããã±ãŒãžã§æ§æãããŠããŸãã
graph TD
subgraph "clarifai-mcp-server-local"
direction LR
CmdServer["cmd/server (main)"] --> MCP["mcp (JSON-RPC/stdio)"]
CmdServer --> Config["config (Flags)"]
CmdServer --> Tools["tools (Handlers)"]
CmdServer --> Resources["resources (Handlers)"]
MCP --> Tools
MCP --> Resources
Tools --> ClarifaiClient["clarifai (gRPC Client)"]
Tools --> Utils["utils (Filesystem)"]
Tools --> Config
Resources --> ClarifaiClient
Resources --> Config
ClarifaiClient --> Config
end
subgraph External
MCPClient["MCP Client (e.g., IDE)"] -- stdio --> MCP
ClarifaiClient -- gRPC --> ClarifaiAPI["Clarifai API"]
end
style MCPClient fill:#f9f,stroke:#333,stroke-width:2px
style ClarifaiAPI fill:#ccf,stroke:#333,stroke-width:2px
cmd/serverïŒèšå®ã®åæåãMCP ãµãŒããŒã€ã³ã¹ã¿ã³ã¹ã®ã»ããã¢ããããã³ãã©ãŒã®ç»é²ãæ åœãããã¢ããªã±ãŒã·ã§ã³ã®ã¡ã€ã³ãšã³ããªãã€ã³ãã§ããconfigïŒã³ãã³ãã©ã€ã³ãã©ã°ã®è§£æãåŠçããèšå®å€ïŒPATãåºåãã¹ãªã©ïŒãä¿æããŸããmcpïŒstdio ãä»ãã MCP éä¿¡ã®äžæ žãšãªãã«ãŒãã管çããåä¿¡ãã JSON-RPC ãªã¯ãšã¹ããè§£æããŠãã¡ãœããïŒtools/callãresources/listãresources/readãªã©ïŒã«å¿ããŠé©åãªãã³ãã©ãŒã«æ¯ãåããŸããclarifaiïŒClarifai API ãšé£æºããããã® gRPC ã¯ã©ã€ã¢ã³ãããžãã¯ãå«ã¿ãŸããèªèšŒïŒãªã¯ãšã¹ããžã® PAT ã®è¿œå ïŒã API åŒã³åºããè¡ããŸããtoolsïŒå ¬éããå MCP ããŒã«ïŒgenerate_imageãclarifai_image_by_pathãclarifai_image_by_urlïŒã®ããžãã¯ãå®è£ ããŸãããããã®ãã³ãã©ãŒã¯clarifaiã¯ã©ã€ã¢ã³ãã䜿çšããŠåŠçãå®è¡ããŸããresourcesïŒMCP ãªãœãŒã¹ãªã¯ãšã¹ãïŒresources/listãresources/readïŒãåŠçããããžãã¯ãå®è£ ããŸãããããã®ãã³ãã©ãŒã¯clarifaiã¯ã©ã€ã¢ã³ãã䜿çšããŠããŒã¿ãååŸããŸããutilsïŒçæããç»åãããŒã«ã«ãã¡ã€ã«ã·ã¹ãã ã«ä¿åãããªã©ã®ãŠãŒãã£ãªãã£é¢æ°ãæäŸããŸãã
ãªã¯ãšã¹ãã®æµãïŒ
次ã®ã·ãŒã±ã³ã¹å³ã¯ãããŒã«ããã³ãªãœãŒã¹ã®ãªã¯ãšã¹ããåŠçããéã®äžè¬çãªæµãã瀺ããŠããŸãã
sequenceDiagram
participant Client as MCP Client (e.g., IDE)
participant Server as clarifai-mcp-server (Go)
participant Clarifai as Clarifai API (gRPC)
participant Filesystem as Local Filesystem
Client->>+Server: JSON-RPC Request (stdio)
Server->>Server: Parse JSON-RPC Request (mcp)
alt Tool Call (e.g., generate_image, clarifai_image_by_path, clarifai_image_by_url)
Server->>Server: Route to Tool Handler (tools)
Server->>Server: Extract tool parameters
Server->>Server: Create gRPC Request (clarifai)
Server->>Server: Add PAT to gRPC Context Metadata (clarifai)
Server->>+Clarifai: Call Clarifai API (gRPC)
Clarifai-->>-Server: gRPC Response (Data/Error)
alt generate_image and image is large
Server->>+Filesystem: Save image to disk (utils, config)
Filesystem-->>-Server: File path
Server->>Server: Format JSON-RPC Response (with file path) (mcp)
else Tool Response (or small image)
Server->>Server: Format JSON-RPC Response (with data/results) (mcp)
end
else Resource Call (e.g., resources/list, resources/read)
Server->>Server: Route to Resource Handler (resources)
Server->>Server: Parse URI and parameters
alt resources/list or search
Server->>+Clarifai: Call Clarifai List/Search API (gRPC) (clarifai)
Clarifai-->>-Server: gRPC Response (List of items/Error)
Server->>Server: Format JSON-RPC Response (List of Resources) (mcp)
else resources/read
Server->>+Clarifai: Call Clarifai Get API (gRPC) (clarifai)
Clarifai-->>-Server: gRPC Response (Item details/Error)
Server->>Server: Format JSON-RPC Response (Resource Content) (mcp)
end
else Other MCP Request (e.g., initialize, tools/list)
Server->>Server: Handle request internally (mcp)
Server->>Server: Format JSON-RPC Response (mcp)
end
Server-->>-Client: JSON-RPC Response (stdio)
èªèšŒã«ã¯ã--pat ã³ãã³ãã©ã€ã³ãã©ã°ã§æå®ãã Personal Access TokenïŒPATïŒã䜿çšããŸãããã®ããŒã¯ã³ã¯ãClarifai API ãžã®éä¿¡ gRPC ãªã¯ãšã¹ãã®ã¡ã¿ããŒã¿ã«å«ãŸããŸãã
ã³ã¡ã³ã
MCP ã¯åããŠã§ããïŒ
ãããã³ã«ã®æŠèŠããæåã®ãµãŒããŒã®å°å ¥ãŸã§ãããããçåã«ãŸãšããŠçããŸãã
AI ã¢ããªã±ãŒã·ã§ã³ãå€éšã®ããŒã«ãããŒã¿ãœãŒã¹ã«çµ±äžçãªæ¹æ³ã§æ¥ç¶ããããã®ãªãŒãã³ãªãããã³ã«ã§ããã¯ã©ã€ã¢ã³ãã¯ã¢ãã«ãšã®å¯Ÿè©±ãæ ããMCP ãµãŒããŒã¯ããŒã«ã»ãªãœãŒã¹ã»ããã³ãããã³ãã¬ãŒããæäŸããŸããæšæºã¡ãã»ãŒãžã§ããåãããããã1 ã€ã®ãµãŒããŒãè€æ°ã®ã¯ã©ã€ã¢ã³ãã§åå©çšã§ããŸãã




