ã€ã³ã¹ããŒã«äžèŠã2å以å ã«åããŸãã
cloud.anythingmcp.com ã§ç¡æãã©ã€ã¢ã«ãéå§ããElasticsearch ãã¯ã³ã¯ãªãã¯ã§è¿œå ããŠãAI ã¯ã©ã€ã¢ã³ãïŒClaudeãChatGPTãCopilotãCursorïŒãçæããã MCP ãšã³ããã€ã³ãã«åããã ããDocker ã git clone ããéçºçµéšãäžèŠã§ãã
æŠèŠ
AI ã«ãElastic CloudãServerlessãèªç€ŸãµãŒããŒäžã® Elasticsearch ã¯ã©ã¹ã¿ãŒãæ¢çŽ¢ãç §äŒãããŸããã€ã³ããã¯ã¹ãšããŒã¿ã¹ããªãŒã ã®äžèЧããããã³ã°ã®èªã¿åããæ€çŽ¢ãéèšãä»¶æ°ã«ãŠã³ããES|QL ã®å®è¡ãã§ãã確èªã®ããã§ããã¥ã¡ã³ãã®æžã蟌ã¿ãè¡ããŸãã
ããèããŠã¿ãã
Elasticsearch ã®ãµã³ãã«ããã³ãã
ããã³ãããã¯ãªãã¯ã§ã³ããŒãClaude / ChatGPT / Cursor / Gemini / Copilot / OpenClaw ã«è²Œãä»ããŠããã®ã³ãã¯ã¿ãŒã§å®è¡ã§ããŸãã
Claude 㯠AI ã®ãã誀ãããšããããŸããåçãã確èªãã ããã
ð¡ ã€ã³ã¹ããŒã«äžèŠ? cloud.anythingmcp.com ãçŽæ¥å©çšããŠãã ããã ãµã€ã³ã€ã³ããConnectors â Elasticsearch ãã¯ãªãã¯ãèªèšŒæ å ±ã貌ãä»ããMCP API ããŒãçºè¡ããã°å®äºã§ããDocker ã
git cloneãããŒã«ã«ãµãŒããŒãäžèŠã
Elasticsearch + Microsoft Copilot
AI ã«ãElastic CloudãServerlessãèªç€ŸãµãŒããŒäžã® Elasticsearch ã¯ã©ã¹ã¿ãŒãæ¢çŽ¢ãç §äŒãããŸããã€ã³ããã¯ã¹ãšããŒã¿ã¹ããªãŒã ã®äžèЧããããã³ã°ã®èªã¿åããæ€çŽ¢ãéèšãä»¶æ°ã«ãŠã³ããES|QL ã®å®è¡ãã§ãã確èªã®ããã§ããã¥ã¡ã³ãã®æžã蟌ã¿ãè¡ããŸãã
åææ¡ä»¶
å®å šãªã»ããã¢ããæé ã¯ã³ãã¯ã¿èªäœã«çµã¿èŸŒãŸããŠããŸã (ã¹ãã¢ã§ã³ãã¯ã¿ãéžæãããšè¡šç€º)ãå¿ èŠãªç°å¢å€æ°:
ELASTICSEARCH_URL, ELASTICSEARCH_API_KEY
ã¹ããã 1 â èªèšŒæ å ±ãååŸ
- Elasticsearch ã®ãšã³ããã€ã³ãã確èªããŸããElastic Cloud Hosted:
https://cloud.elastic.coã§ãããã€ã¡ã³ããéããElasticsearch endpoint ãã³ããŒããŸãïŒäŸ:https://my-deployment.es.europe-west3.gcp.cloud.es.ioïŒãServerless: ãããžã§ã¯ããéããElasticsearch ã®ãšã³ããã€ã³ããã³ããŒããŸããã»ã«ããããŒãžã: ã¯ã©ã¹ã¿ãŒãå¿çãã HTTPS ã¢ãã¬ã¹ãšããŒãã§ãïŒäŸ:https://search.example.com:9200ïŒãæ«å°Ÿã®ã¹ã©ãã·ã¥ãä»ããã«ELASTICSEARCH_URLã«è²Œãä»ããŸããKibana ã®ã¢ãã¬ã¹ã§ã¯ãªããElasticsearch ã®ãšã³ããã€ã³ãã䜿ã£ãŠãã ããã - Kibana ã® Stack Management â API keys â Create API keyïŒServerless ã§ã¯ãããžã§ã¯ãèšå® â API keysïŒã§ API ããŒãäœæããŸãã
anythingmcpãªã©ã®ååãšæå¹æéãä»ããControl security privileges ããªã³ã«ããŠæš©éãçµããŸãïŒäžèšåç §ïŒã - Encoded ã®å€ïŒbase64ïŒãã³ããŒããŸããElastic ã¯ãã®å€ã 1 åãã衚瀺ããŸããã
ELASTICSEARCH_API_KEYã«è²Œãä»ããŠãã³ãã¯ã¿ãã€ã³ã¹ããŒã«ããŸããidãapi_keyã®å€ã ãã§ã¯åäœããããŠãŒã¶ãŒåãšãã¹ã¯ãŒãã«ããèªèšŒã«ã¯å¯Ÿå¿ããŠããŸããã elasticsearch_whoamiã§èšå®ã確èªããŸããæš©éã¯äžèŠã§ãããŒã®ææè ã衚瀺ããŸãã
察å¿ããã¯ã©ã¹ã¿ãŒ: Elastic Cloud HostedãElastic Cloud ServerlessãããŒãžã§ã³ 8 以éã®ã»ã«ããããŒãžãã¯ã©ã¹ã¿ãŒãAnythingMCP Cloud ããã¯ã€ã³ã¿ãŒãããçµç±ã§å°éã§ããã¯ã©ã¹ã¿ãŒãå¿ èŠã§ããã»ã«ããã¹ãã® AnythingMCP ãªãã管çè ããã®ãã¹ããèš±å¯ããã°ç€Ÿå ãããã¯ãŒã¯ã®ã¯ã©ã¹ã¿ãŒã«ãæ¥ç¶ã§ããŸãã
èªã¿åãå°çšããŒïŒæšå¥šïŒ: Kibana ã®ãã©ãŒã ã§æ¬¡ã®ããŒã«èšè¿°åã䜿ãããKibana ã® Dev Tools ã§ãªã¯ãšã¹ããå®è¡ããå¿çã® encoded ãã³ããŒããŸãã
POST /_security/api_key
{
"name": "anythingmcp-read",
"expiration": "365d",
"role_descriptors": {
"anythingmcp_read": {
"cluster": ["monitor"],
"indices": [
{ "names": ["*"], "privileges": ["read", "view_index_metadata", "monitor"] }
]
}
}
}
"*" ã¯ãAI ã«èŠããŠããã€ã³ããã¯ã¹ãã¿ãŒã³ïŒäŸ: ["products", "logs-*"]ïŒã«çœ®ãæããŠãã ãããread ã¯æ€çŽ¢ãä»¶æ°ãéèšãES|QLãåäžããã¥ã¡ã³ãããview_index_metadata ã¯ãããã³ã°ããšã€ãªã¢ã¹ãããŒã¿ã¹ããªãŒã ããmonitor ã¯ã€ã³ããã¯ã¹äžèЧãšã¯ã©ã¹ã¿ãŒã®ç¶æ
ãã«ããŒããŸããããŒãäœæãããŠãŒã¶ãŒä»¥äžã®æš©éãæã€ããšã¯ãããŸããã
AI ãã§ããããš: ã€ã³ããã¯ã¹ããšã€ãªã¢ã¹ãããŒã¿ã¹ããªãŒã ã®äžèŠ§è¡šç€ºãã¯ãšãªåã®ãã£ãŒã«ããããã³ã°ã®ç¢ºèªãQuery DSL ã«ããæ€çŽ¢ïŒæ¢å® 10 ä»¶ã1 åãããæå€§ 100 ä»¶ïŒãå€ããšã®ä»¶æ°ãåèšãå¹³åãæ¥ä»ãã¹ãã°ã©ã ãªã©ã®éèšãäžèŽä»¶æ°ã®ã«ãŠã³ãã衚圢åŒã®åçã®ããã® ES|QL ã¯ãšãªïŒæå€§ 500 è¡ïŒãåäžããã¥ã¡ã³ãã®èªã¿åããäžè¬çãªãã¯ãã«ãã£ãŒã«ãã¯æ€çŽ¢çµæããé€å€ãããŸããElastic ãã¯ã©ã¹ã¿ãŒãéçšãã Serverless ã§ã¯ãã¯ã©ã¹ã¿ãŒã®ç¶æ ã¯ååŸã§ããŸããã
æžã蟌ã¿ã¯å
ã«ç¢ºèªããŸã: elasticsearch_index_document ã¯ããã¥ã¡ã³ãå
šäœãäœæãŸãã¯çœ®ãæããelasticsearch_update_document ã¯ããã¥ã¡ã³ãã®äžéšã®ãã£ãŒã«ãã倿ŽããŸããã©ã¡ãã®å ŽåããAI ã¯ã€ã³ããã¯ã¹ã_idãå
容ã瀺ããŠãããããªãã®åæãåŸ
ã¡ãŸããäž¡æ¹ãšã write æš©éãå¿
èŠãªãããäžã®èªã¿åãå°çšããŒã§ã¯ 403 ã§å€±æããŸããããã¯æå³ããå®å
šçã§ãã
ã€ã³ã¹ããŒã«æã¯ãªã: elasticsearch_delete_document ãš elasticsearch_delete_by_queryãåé€ã¯å
ã«æ»ãããdelete by query ã¯æ°çŸäžä»¶ã®ããã¥ã¡ã³ããæ¶ãããšããããŸãã管çè
ãæå³ããŠæå¹ã«ããŸããæå¹ã«ããåŸããAI ã¯ãŸã察象ããã¥ã¡ã³ãã®ä»¶æ°ãæ°ããåé€ã®åã«ç¢ºèªããŸãã
ãããããšã©ãŒ: 401: ããŒãééã£ãŠãããæéåããç¡å¹åãããŠããããŸã㯠Encoded ã®å€ã§ã¯ãªã id ã貌ãä»ããããŠããŸãã403 security_exception: ã¡ãã»ãŒãžã«æžãããæš©éãããŒã«ãããŸããã404 index_not_found_exception: ã€ã³ããã¯ã¹åãååšããŸããã400 parsing_exception ãŸã㯠verification_exception: ã¯ãšãªã«èª€ãããããŸããã¡ãã»ãŒãžã«ãã£ãŒã«ããäœçœ®ã瀺ãããŸãã429: ã¯ã©ã¹ã¿ãŒãéè² è·ã§ããå°ãåŸ
ã£ãŠããå詊è¡ããŠãã ããã
ãã®ã³ãã¯ã¿ãéä¿¡ããã®ã¯ Elasticsearch ã ãã§ãKibana ã«ã¯æ¥ç¶ããŸãããã€ã³ããã¯ã¹ã®äœæãåé€ããããã³ã°ãèšå®ã®å€æŽãã¹ãããã·ã§ãããã€ã³ãžã§ã¹ããã€ãã©ã€ã³ãã»ãã¥ãªãã£ç®¡çãBulk API ã«ã¯å¯Ÿå¿ããŠããŸããã
ã¹ããã 2 â ã¢ããã¿ãŒãã€ã³ã¹ããŒã«
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
ã¹ããã 3 â Microsoft Copilot ã«ã³ãã¯ã¿ã远å
ãµãŒããŒURL: AnythingMCP ã§ MCP Servers ãéãããã®ã³ãã¯ã¿ããããµãŒããŒãéžãã§ URLïŒ
https://cloud.anythingmcp.com/mcp/âŠïŒãã³ããŒããŸãããã®ã¬ã€ãã§YOUR_SERVER_IDãšè¡šç€ºãããŠããç®æã«äœ¿ã£ãŠãã ããã
Microsoft Copilot ã¯ãCopilot Studio ã§äœæãããšãŒãžã§ã³ããéã㊠MCP ãµãŒããŒã䜿ããŸããAnythingMCP ãããŒã«ãšããŠãšãŒãžã§ã³ãã«è¿œå ãããã®ãšãŒãžã§ã³ãã Microsoft 365 Copilot ãš Teams ã«å ¬éããŸããCopilot Studio 㯠Microsoft ã®ã¯ã©ãŠããã Streamable HTTP ã§æ¥ç¶ããAnythingMCP ã¯ããã«å¯Ÿå¿ããŠããŸãã
- Copilot Studio ã§ãšãŒãžã§ã³ããéãïŒãŸãã¯æ°èŠäœæãïŒãTools ã§ Add a tool â New tool â Model Context Protocol ãéžã³ãŸãã
- Server nameïŒäŸ:
AnythingMCPïŒãã³ãã¯ã¿ã§ã§ããããšã説æãã Server descriptionãServer URLhttps://cloud.anythingmcp.com/mcp/YOUR_SERVER_IDãå ¥åããŸããCopilot Studio ã¯ãã®èª¬æãããšã«ããã€ãµãŒããŒãåŒã³åºããã倿ããŸãã - èªèšŒã§ API key ãéžã³ãType ã HeaderãããããŒåã
X-API-Keyã«ã㊠Create ãéžã³ãŸãã - Add tool ã§ Create a new connection ãéžã³ãAnythingMCP ã® MCP API ããŒïŒMCP Servers â 察象ã®ãµãŒã㌠â API keysïŒã貌ãä»ã㊠Add to agent ãéžã³ãŸãã
- ãšãŒãžã§ã³ãã® Test ãŠã£ã³ããŠã§è©ŠããŸãã
Elasticsearchã®ããŒã«ãå¿ èŠã«ãªãäŸé ŒãããŠã¿ãŸãããã - Publish ãéžã³ãChannels â Microsoft 365 and Microsoft Teams ã§ Make agent available in Microsoft Copilot ãéžæãããŸãŸ Add channel ãéžã³ãŸããSee agent in Teams ã§èªåçšã«ã€ã³ã¹ããŒã«ãããŸããMicrosoft 365 Copilot ã§ã¯ @ ãå ¥åããŠãšãŒãžã§ã³ããéžã³ãŸãã
ãŠãŒã¶ãŒããšã«ãµã€ã³ã€ã³ããããå Žåã¯ãAPI ããŒã®ä»£ããã« OAuth 2.0 â Dynamic discovery ãéžã³ãŸããåãŠãŒã¶ãŒã¯ããšãŒãžã§ã³ããåããŠåŒã³åºããšãã« AnythingMCP ã«ãµã€ã³ã€ã³ããŸãã
ã»ã«ããã¹ãã®å Žåã¯ãhttps://cloud.anythingmcp.com ã®ä»£ããã«ã€ã³ã¹ã¿ã³ã¹ã®å
¬é HTTPS ã¢ãã¬ã¹ã䜿ã£ãŠãã ãããCopilot Studio 㯠Microsoft ã®ã¯ã©ãŠãããæ¥ç¶ãããããlocalhost ã¯äœ¿ããŸããã
å©çšå¯èœãªããŒã«
| Tool | What it does |
|---|---|
elasticsearch_whoami | Show who the connector is signed in as: the user behind the API key, the key's name and id and the authentication type |
elasticsearch_cluster_info | Get basic information about the cluster: name, uuid, Elasticsearch version and build flavor (serverless on Elastic Cloud Serverless) |
elasticsearch_cluster_health | Get the cluster health: status (green, yellow or red), node counts, active, relocating, initializing and unassigned shards and pending tasks |
elasticsearch_list_indices | List indices with their health, status, document count, store size, primary and replica shard counts and creation date, sorted by name (at⊠|
elasticsearch_get_mapping | Get the field mapping of an index or data stream: every field with its type (text, keyword, date, long, dense_vector...) |
elasticsearch_search | Search an index, data stream or alias with the Query DSL and get the matching documents (total, and per hit _index, _id, _score, _source⊠|
elasticsearch_aggregate | Run aggregations over an index or data stream without returning documents: counts per value (terms), sums and averages, date histograms⊠|
elasticsearch_count | Count the documents in an index, data stream or alias that match a query (all documents without a query) |
elasticsearch_esql_query | Run an ES|QL query, a piped language for filtering, aggregating and joining (Elasticsearch 8.11 or later, and Serverless) |
elasticsearch_get_document | Get one document by its _id from an index: found, _version and the _source, optionally only some fields |
elasticsearch_list_aliases | List index aliases: alias name, the index it points to, whether it has a filter and whether it is the write index |
elasticsearch_list_data_streams | List data streams (time series such as logs and metrics): name, health status, index template, generation, number of backing indices⊠|
elasticsearch_index_document | Create or replace a whole document under a given _id in an index |
elasticsearch_update_document | Change some fields of an existing document by _id, leaving the others as they are (a partial update with doc) |
elasticsearch_delete_document | Delete one document by _id |
elasticsearch_delete_by_query | Delete every document that matches a query |
ããã³ããã®äŸ
- ãã©ããªã€ã³ããã¯ã¹ããããããããã®ããã¥ã¡ã³ãæ°ãšãµã€ãºã¯ã©ããããã§ããïŒã
- ãproducts ã€ã³ããã¯ã¹ã§ 100 ãŠãŒãæªæºã®ã¯ã€ã€ã¬ã¹ããããã³ãæ€çŽ¢ããååããã©ã³ããäŸ¡æ ŒãèŠããŠãã ãããã
- ãES|QL ã§ãlogs- ã®éå» 24 æéã®ãšã©ãŒæ°ããã¹ãããšã«æ°ããäžäœ 10 ä»¶ãèŠããŠãã ãããã*
- ã9 æã® 1 æ¥ãããã®æ³šææ°ã¯ïŒorders ã€ã³ããã¯ã¹ã§æ¥ä»ãã¹ãã°ã©ã ã䜿ã£ãŠãã ãããã
- ãproducts ã€ã³ããã¯ã¹ã®åå 4711 ã® stock ãã£ãŒã«ãã 0 ã«ããŠãã ããã倿Žããåã«å 容ãèŠããŠãã ãããã
FAQ
ã©ã® Copilot ã察象ã§ãã? è·å Žã§äœ¿ã Microsoft 365 Copilot ã§ãCopilot Studio ã®ãšãŒãžã§ã³ããéããŠå©çšããŸããå人ã¢ã«ãŠã³ãåãã® Microsoft Copilot ã¢ããªã§ã¯ãç¬èªã® MCP ãµãŒããŒã远å ã§ããŸããã
äœãå¿ èŠã§ãã? ãšãŒãžã§ã³ããäœæããããã«ãCopilot Studio ãå©çšã§ããè·å Žã¢ã«ãŠã³ãïŒã©ã€ã»ã³ã¹ãŸãã¯è©ŠçšçïŒãå¿ èŠã§ããMicrosoft 365 Copilot ã Teams ã§ãšãŒãžã§ã³ãã䜿ã人ã«ã¯ããšãŒãžã§ã³ããžã®ã¢ã¯ã»ã¹æš©ãå¿ èŠã§ããå ±æãããã管çè ã«çµç¹åãã«å ¬éããŠããã£ãŠãã ãããçµç¹ã Power Platform ã³ãã¯ã¿ã«ããŒã¿ ããªã·ãŒãé©çšããŠããå Žåã¯ãMCP ãµãŒããŒã«ãé©çšãããŸãã
ãšãŒãžã§ã³ããããŒã«ãåŒã³åºããŸããã ããããŒåãæ£ç¢ºã« X-API-Key ã§ããããšãããŒã URL ãšåã MCP ãµãŒããŒã®ãã®ã§ããããšã確èªããServer description ãå
·äœçã«æžããŠãã ãããCopilot Studio ã¯ãã®èª¬æãããšã«ãµãŒããŒãåŒã³åºããã©ããã倿ããŸãã倿Žã®ãã³ã«ãšãŒãžã§ã³ããåå
¬éããéããŠãããã£ããã§ã¯ "start over" ãšå
¥åãããšæ°ããããŒãžã§ã³ã«ãªããŸãã
次ã®ã¹ããã
- ã³ãã¯ã¿ã®ã©ã³ãã£ã³ã°
- Claude ã«æ¥ç¶
- ChatGPT ã«æ¥ç¶
- Cursor ã«æ¥ç¶
- Gemini ã«æ¥ç¶
- Meta Muse ã«æ¥ç¶
ãã®ã¬ã€ãã¯åœ¹ã«ç«ã¡ãŸããã?