diff --git a/package.json b/package.json index ef163fc97e95..1e10dc53a916 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "graph-docs", "private": true, "version": "1.0.0", - "packageManager": "pnpm@10.12.3", + "packageManager": "pnpm@10.13.1", "scripts": { "dev": "turbo run dev", "build": "NODE_OPTIONS='--max-old-space-size=8192' turbo run build", @@ -21,11 +21,11 @@ }, "devDependencies": { "@edgeandnode/eslint-config": "^2.0.3", - "@types/node": "^22.15.33", + "@types/node": "^22.16.2", "eslint": "^8.57.1", - "eslint-plugin-mdx": "^3.5.0", - "prettier": "^3.6.1", - "prettier-plugin-tailwindcss": "^0.6.13", + "eslint-plugin-mdx": "^3.6.2", + "prettier": "^3.6.2", + "prettier-plugin-tailwindcss": "^0.6.14", "remark-frontmatter": "^5.0.0", "remark-lint-first-heading-level": "^4.0.1", "remark-lint-heading-increment": "^4.0.1", diff --git a/packages/og-image/package.json b/packages/og-image/package.json index 6666c73f6868..00039ec94383 100644 --- a/packages/og-image/package.json +++ b/packages/og-image/package.json @@ -16,13 +16,13 @@ "yoga-wasm-web": "^0.3.3" }, "devDependencies": { - "@cloudflare/workers-types": "^4.20250620.0", + "@cloudflare/workers-types": "^4.20250710.0", "@types/react": "^18.3.23", "jest-image-snapshot": "^6.5.1", "tsx": "^4.20.3", "typescript": "^5.8.3", "vitest": "^2.1.9", - "wrangler": "^3.114.10" + "wrangler": "^3.114.11" }, "sideEffects": false } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ef4e59e9d41e..6700a4587de8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,20 +15,20 @@ importers: specifier: ^2.0.3 version: 2.0.3(eslint@8.57.1)(typescript@5.8.3) '@types/node': - specifier: ^22.15.33 - version: 22.15.33 + specifier: ^22.16.2 + version: 22.16.2 eslint: specifier: ^8.57.1 version: 8.57.1 eslint-plugin-mdx: - specifier: ^3.5.0 - version: 3.5.0(eslint@8.57.1) + specifier: ^3.6.2 + version: 3.6.2(eslint@8.57.1) prettier: - specifier: ^3.6.1 - version: 3.6.1 + specifier: ^3.6.2 + version: 3.6.2 prettier-plugin-tailwindcss: - specifier: ^0.6.13 - version: 0.6.13(prettier@3.6.1) + specifier: ^0.6.14 + version: 0.6.14(prettier@3.6.2) remark-frontmatter: specifier: ^5.0.0 version: 5.0.0 @@ -67,8 +67,8 @@ importers: version: 0.3.3 devDependencies: '@cloudflare/workers-types': - specifier: ^4.20250620.0 - version: 4.20250620.0 + specifier: ^4.20250710.0 + version: 4.20250710.0 '@types/react': specifier: ^18.3.23 version: 18.3.23 @@ -83,10 +83,10 @@ importers: version: 5.8.3 vitest: specifier: ^2.1.9 - version: 2.1.9(@types/node@22.15.33)(jsdom@24.1.3) + version: 2.1.9(@types/node@22.16.2)(jsdom@24.1.3) wrangler: - specifier: ^3.114.10 - version: 3.114.10(@cloudflare/workers-types@4.20250620.0) + specifier: ^3.114.11 + version: 3.114.11(@cloudflare/workers-types@4.20250710.0) packages/remark-lint-restrict-elements: dependencies: @@ -101,16 +101,16 @@ importers: dependencies: '@docsearch/react': specifier: ^3.9.0 - version: 3.9.0(@algolia/client-search@5.29.0)(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3) + version: 3.9.0(@algolia/client-search@5.32.0)(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3) '@edgeandnode/common': specifier: ^7.0.4 version: 7.0.4(hardhat@2.25.0(typescript@5.8.3)) '@edgeandnode/gds': - specifier: ^6.6.2 - version: 6.6.2(@emotion/is-prop-valid@0.8.8)(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(@theme-ui/core@0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(react@18.3.1))(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(dayjs@1.11.13)(hardhat@2.25.0(typescript@5.8.3))(next@14.2.30(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(theme-ui@0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(react@18.3.1))(typescript@5.8.3) + specifier: ^6.7.0 + version: 6.7.0(@emotion/is-prop-valid@0.8.8)(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(@theme-ui/core@0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(react@18.3.1))(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(dayjs@1.11.13)(hardhat@2.25.0(typescript@5.8.3))(next@14.2.30(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(theme-ui@0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(react@18.3.1))(typescript@5.8.3) '@edgeandnode/go': - specifier: ^10.2.3 - version: 10.2.3(f31233e6aec53dd14ecd91b56887af79) + specifier: ^10.3.0 + version: 10.3.0(df7a60f2b2bbf39644b6c2833d03ec2d) '@emotion/react': specifier: ^11.14.0 version: 11.14.0(@types/react@18.3.23)(react@18.3.1) @@ -148,11 +148,11 @@ importers: specifier: ^13.2.0 version: 13.2.0 mixpanel-browser: - specifier: ^2.65.0 - version: 2.65.0 + specifier: ^2.66.0 + version: 2.66.0 motion: - specifier: ^12.19.1 - version: 12.19.1(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^12.23.1 + version: 12.23.1(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next: specifier: ^14.2.30 version: 14.2.30(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -193,15 +193,15 @@ importers: specifier: ^6.0.3 version: 6.0.3 zod: - specifier: ^3.25.67 - version: 3.25.67 + specifier: ^3.25.76 + version: 3.25.76 devDependencies: '@types/hast': specifier: ^3.0.4 version: 3.0.4 '@types/lodash': - specifier: ^4.17.19 - version: 4.17.19 + specifier: ^4.17.20 + version: 4.17.20 '@types/mdast': specifier: ^4.0.4 version: 4.0.4 @@ -209,8 +209,8 @@ importers: specifier: ^2.60.0 version: 2.60.0 '@types/node': - specifier: ^22.15.33 - version: 22.15.33 + specifier: ^22.16.2 + version: 22.16.2 '@types/react': specifier: ^18.3.23 version: 18.3.23 @@ -267,56 +267,56 @@ packages: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' - '@algolia/client-abtesting@5.29.0': - resolution: {integrity: sha512-AM/6LYMSTnZvAT5IarLEKjYWOdV+Fb+LVs8JRq88jn8HH6bpVUtjWdOZXqX1hJRXuCAY8SdQfb7F8uEiMNXdYQ==} + '@algolia/client-abtesting@5.32.0': + resolution: {integrity: sha512-HG/6Eib6DnJYm/B2ijWFXr4txca/YOuA4K7AsEU0JBrOZSB+RU7oeDyNBPi3c0v0UDDqlkBqM3vBU/auwZlglA==} engines: {node: '>= 14.0.0'} - '@algolia/client-analytics@5.29.0': - resolution: {integrity: sha512-La34HJh90l0waw3wl5zETO8TuukeUyjcXhmjYZL3CAPLggmKv74mobiGRIb+mmBENybiFDXf/BeKFLhuDYWMMQ==} + '@algolia/client-analytics@5.32.0': + resolution: {integrity: sha512-8Y9MLU72WFQOW3HArYv16+Wvm6eGmsqbxxM1qxtm0hvSASJbxCm+zQAZe5stqysTlcWo4BJ82KEH1PfgHbJAmQ==} engines: {node: '>= 14.0.0'} - '@algolia/client-common@5.29.0': - resolution: {integrity: sha512-T0lzJH/JiCxQYtCcnWy7Jf1w/qjGDXTi2npyF9B9UsTvXB97GRC6icyfXxe21mhYvhQcaB1EQ/J2575FXxi2rA==} + '@algolia/client-common@5.32.0': + resolution: {integrity: sha512-w8L+rgyXMCPBKmEdOT+RfgMrF0mT6HK60vPYWLz8DBs/P7yFdGo7urn99XCJvVLMSKXrIbZ2FMZ/i50nZTXnuQ==} engines: {node: '>= 14.0.0'} - '@algolia/client-insights@5.29.0': - resolution: {integrity: sha512-A39F1zmHY9aev0z4Rt3fTLcGN5AG1VsVUkVWy6yQG5BRDScktH+U5m3zXwThwniBTDV1HrPgiGHZeWb67GkR2Q==} + '@algolia/client-insights@5.32.0': + resolution: {integrity: sha512-AdWfynhUeX7jz/LTiFU3wwzJembTbdLkQIOLs4n7PyBuxZ3jz4azV1CWbIP8AjUOFmul6uXbmYza+KqyS5CzOA==} engines: {node: '>= 14.0.0'} - '@algolia/client-personalization@5.29.0': - resolution: {integrity: sha512-ibxmh2wKKrzu5du02gp8CLpRMeo+b/75e4ORct98CT7mIxuYFXowULwCd6cMMkz/R0LpKXIbTUl15UL5soaiUQ==} + '@algolia/client-personalization@5.32.0': + resolution: {integrity: sha512-bTupJY4xzGZYI4cEQcPlSjjIEzMvv80h7zXGrXY1Y0KC/n/SLiMv84v7Uy+B6AG1Kiy9FQm2ADChBLo1uEhGtQ==} engines: {node: '>= 14.0.0'} - '@algolia/client-query-suggestions@5.29.0': - resolution: {integrity: sha512-VZq4/AukOoJC2WSwF6J5sBtt+kImOoBwQc1nH3tgI+cxJBg7B77UsNC+jT6eP2dQCwGKBBRTmtPLUTDDnHpMgA==} + '@algolia/client-query-suggestions@5.32.0': + resolution: {integrity: sha512-if+YTJw1G3nDKL2omSBjQltCHUQzbaHADkcPQrGFnIGhVyHU3Dzq4g46uEv8mrL5sxL8FjiS9LvekeUlL2NRqw==} engines: {node: '>= 14.0.0'} - '@algolia/client-search@5.29.0': - resolution: {integrity: sha512-cZ0Iq3OzFUPpgszzDr1G1aJV5UMIZ4VygJ2Az252q4Rdf5cQMhYEIKArWY/oUjMhQmosM8ygOovNq7gvA9CdCg==} + '@algolia/client-search@5.32.0': + resolution: {integrity: sha512-kmK5nVkKb4DSUgwbveMKe4X3xHdMsPsOVJeEzBvFJ+oS7CkBPmpfHAEq+CcmiPJs20YMv6yVtUT9yPWL5WgAhg==} engines: {node: '>= 14.0.0'} - '@algolia/ingestion@1.29.0': - resolution: {integrity: sha512-scBXn0wO5tZCxmO6evfa7A3bGryfyOI3aoXqSQBj5SRvNYXaUlFWQ/iKI70gRe/82ICwE0ICXbHT/wIvxOW7vw==} + '@algolia/ingestion@1.32.0': + resolution: {integrity: sha512-PZTqjJbx+fmPuT2ud1n4vYDSF1yrT//vOGI9HNYKNA0PM0xGUBWigf5gRivHsXa3oBnUlTyHV9j7Kqx5BHbVHQ==} engines: {node: '>= 14.0.0'} - '@algolia/monitoring@1.29.0': - resolution: {integrity: sha512-FGWWG9jLFhsKB7YiDjM2dwQOYnWu//7Oxrb2vT96N7+s+hg1mdHHfHNRyEudWdxd4jkMhBjeqNA21VbTiOIPVg==} + '@algolia/monitoring@1.32.0': + resolution: {integrity: sha512-kYYoOGjvNQAmHDS1v5sBj+0uEL9RzYqH/TAdq8wmcV+/22weKt/fjh+6LfiqkS1SCZFYYrwGnirrUhUM36lBIQ==} engines: {node: '>= 14.0.0'} - '@algolia/recommend@5.29.0': - resolution: {integrity: sha512-xte5+mpdfEARAu61KXa4ewpjchoZuJlAlvQb8ptK6hgHlBHDnYooy1bmOFpokaAICrq/H9HpoqNUX71n+3249A==} + '@algolia/recommend@5.32.0': + resolution: {integrity: sha512-jyIBLdskjPAL7T1g57UMfUNx+PzvYbxKslwRUKBrBA6sNEsYCFdxJAtZSLUMmw6MC98RDt4ksmEl5zVMT5bsuw==} engines: {node: '>= 14.0.0'} - '@algolia/requester-browser-xhr@5.29.0': - resolution: {integrity: sha512-og+7Em75aPHhahEUScq2HQ3J7ULN63Levtd87BYMpn6Im5d5cNhaC4QAUsXu6LWqxRPgh4G+i+wIb6tVhDhg2A==} + '@algolia/requester-browser-xhr@5.32.0': + resolution: {integrity: sha512-eDp14z92Gt6JlFgiexImcWWH+Lk07s/FtxcoDaGrE4UVBgpwqOO6AfQM6dXh1pvHxlDFbMJihHc/vj3gBhPjqQ==} engines: {node: '>= 14.0.0'} - '@algolia/requester-fetch@5.29.0': - resolution: {integrity: sha512-JCxapz7neAy8hT/nQpCvOrI5JO8VyQ1kPvBiaXWNC1prVq0UMYHEL52o1BsPvtXfdQ7BVq19OIq6TjOI06mV/w==} + '@algolia/requester-fetch@5.32.0': + resolution: {integrity: sha512-rnWVglh/K75hnaLbwSc2t7gCkbq1ldbPgeIKDUiEJxZ4mlguFgcltWjzpDQ/t1LQgxk9HdIFcQfM17Hid3aQ6Q==} engines: {node: '>= 14.0.0'} - '@algolia/requester-node-http@5.29.0': - resolution: {integrity: sha512-lVBD81RBW5VTdEYgnzCz7Pf9j2H44aymCP+/eHGJu4vhU+1O8aKf3TVBgbQr5UM6xoe8IkR/B112XY6YIG2vtg==} + '@algolia/requester-node-http@5.32.0': + resolution: {integrity: sha512-LbzQ04+VLkzXY4LuOzgyjqEv/46Gwrk55PldaglMJ4i4eDXSRXGKkwJpXFwsoU+c1HMQlHIyjJBhrfsfdyRmyQ==} engines: {node: '>= 14.0.0'} '@alloc/quick-lru@5.2.0': @@ -340,8 +340,12 @@ packages: resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} - '@babel/generator@7.27.5': - resolution: {integrity: sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==} + '@babel/generator@7.28.0': + resolution: {integrity: sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-globals@7.28.0': + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} engines: {node: '>=6.9.0'} '@babel/helper-module-imports@7.27.1': @@ -356,8 +360,8 @@ packages: resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} engines: {node: '>=6.9.0'} - '@babel/parser@7.27.5': - resolution: {integrity: sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==} + '@babel/parser@7.28.0': + resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==} engines: {node: '>=6.0.0'} hasBin: true @@ -369,12 +373,12 @@ packages: resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.27.4': - resolution: {integrity: sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==} + '@babel/traverse@7.28.0': + resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==} engines: {node: '>=6.9.0'} - '@babel/types@7.27.6': - resolution: {integrity: sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==} + '@babel/types@7.28.0': + resolution: {integrity: sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==} engines: {node: '>=6.9.0'} '@base-ui-components/react@1.0.0-alpha.7': @@ -453,8 +457,8 @@ packages: cpu: [x64] os: [win32] - '@cloudflare/workers-types@4.20250620.0': - resolution: {integrity: sha512-EVvRB/DJEm6jhdKg+A4Qm4y/ry1cIvylSgSO3/f/Bv161vldDRxaXM2YoQQWFhLOJOw0qtrHsKOD51KYxV1XCw==} + '@cloudflare/workers-types@4.20250710.0': + resolution: {integrity: sha512-o055XFgW/ZinLnxDDlm4Q4b2yEmP2x5kekOka/E86blax/RGXj51mBQV/Co3VNog1CePzOA9S/CEOthoIirWRA==} '@corex/deepmerge@4.0.43': resolution: {integrity: sha512-N8uEMrMPL0cu/bdboEWpQYb/0i2K5Qn8eCsxzOmxSggJbbQte7ljMRoXm917AbntqTGOzdTu+vP3KOOzoC70HQ==} @@ -528,8 +532,8 @@ packages: typescript: optional: true - '@edgeandnode/gds@6.6.2': - resolution: {integrity: sha512-lXr4YQpnTitq+mqvRXIM6i2W36PPjtC/AHuPQsVK7uJbLXQ392ghuzHASFrtT7/XjY6nZ3vHg0zktVexFimM5Q==} + '@edgeandnode/gds@6.7.0': + resolution: {integrity: sha512-mQNzBOkXf0QytAZwKRkibdGmUhjzJNFvEOh3mtlk4t1lrLHyZy3lfxmj9DZYcqTjGKhcy92hV03qVncsZLCKyw==} peerDependencies: '@emotion/react': ^11 dayjs: ^1.11 @@ -541,12 +545,12 @@ packages: next: optional: true - '@edgeandnode/go@10.2.3': - resolution: {integrity: sha512-D0ouLK91Wr4ZA7Vz+ZF3F3msMxm6NcVi1K3YKBEPuHYn43wt625ON73YQZvTv6VJzZEzfUsxaFcUVbm2qS11tA==} + '@edgeandnode/go@10.3.0': + resolution: {integrity: sha512-qd04ZJcHXDRDsFTgM/hjJwyriBQzpFCIB6zS/ArG61dTdvYWZfU4ugbsm+WVTrf/gxOEl9EFWej3oazM6gwWkg==} peerDependencies: '@edgeandnode/common': ^7.0.4 '@edgeandnode/ens': ^2.3.0 - '@edgeandnode/gds': ^6.6.2 + '@edgeandnode/gds': ^6.7.0 '@emotion/react': ^11 '@tanstack/react-query': ^5 graphql: '>=16.9' @@ -559,14 +563,14 @@ packages: next: optional: true - '@emnapi/core@1.4.3': - resolution: {integrity: sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==} + '@emnapi/core@1.4.4': + resolution: {integrity: sha512-A9CnAbC6ARNMKcIcrQwq6HeHCjpcBZ5wSx4U01WXCqEKlrzB9F9315WDNHkrs2xbx7YjjSxbUYxuN6EQzpcY2g==} - '@emnapi/runtime@1.4.3': - resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} + '@emnapi/runtime@1.4.4': + resolution: {integrity: sha512-hHyapA4A3gPaDCNfiqyZUStTMqIkKRshqPIuDOXv1hcBnD4U3l8cP0T1HMCfGRxQ6V64TGCcoswChANyOAwbQg==} - '@emnapi/wasi-threads@1.0.2': - resolution: {integrity: sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==} + '@emnapi/wasi-threads@1.0.3': + resolution: {integrity: sha512-8K5IFFsQqF9wQNJptGbS6FNKgUTsSRYnTqNCG1vPP8jFdjSv18n2mQfJpkt2Oibo9iBEzcDnDxNwKTzC7svlJw==} '@emotion/babel-plugin@11.13.5': resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==} @@ -652,8 +656,8 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.25.5': - resolution: {integrity: sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==} + '@esbuild/aix-ppc64@0.25.6': + resolution: {integrity: sha512-ShbM/3XxwuxjFiuVBHA+d3j5dyac0aEVVq1oluIDf71hUw0aRF59dV/efUsIwFnR6m8JNM2FjZOzmaZ8yG61kw==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -670,8 +674,8 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.25.5': - resolution: {integrity: sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==} + '@esbuild/android-arm64@0.25.6': + resolution: {integrity: sha512-hd5zdUarsK6strW+3Wxi5qWws+rJhCCbMiC9QZyzoxfk5uHRIE8T287giQxzVpEvCwuJ9Qjg6bEjcRJcgfLqoA==} engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -688,8 +692,8 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.25.5': - resolution: {integrity: sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==} + '@esbuild/android-arm@0.25.6': + resolution: {integrity: sha512-S8ToEOVfg++AU/bHwdksHNnyLyVM+eMVAOf6yRKFitnwnbwwPNqKr3srzFRe7nzV69RQKb5DgchIX5pt3L53xg==} engines: {node: '>=18'} cpu: [arm] os: [android] @@ -706,8 +710,8 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.25.5': - resolution: {integrity: sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==} + '@esbuild/android-x64@0.25.6': + resolution: {integrity: sha512-0Z7KpHSr3VBIO9A/1wcT3NTy7EB4oNC4upJ5ye3R7taCc2GUdeynSLArnon5G8scPwaU866d3H4BCrE5xLW25A==} engines: {node: '>=18'} cpu: [x64] os: [android] @@ -724,8 +728,8 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.25.5': - resolution: {integrity: sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==} + '@esbuild/darwin-arm64@0.25.6': + resolution: {integrity: sha512-FFCssz3XBavjxcFxKsGy2DYK5VSvJqa6y5HXljKzhRZ87LvEi13brPrf/wdyl/BbpbMKJNOr1Sd0jtW4Ge1pAA==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -742,8 +746,8 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.25.5': - resolution: {integrity: sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==} + '@esbuild/darwin-x64@0.25.6': + resolution: {integrity: sha512-GfXs5kry/TkGM2vKqK2oyiLFygJRqKVhawu3+DOCk7OxLy/6jYkWXhlHwOoTb0WqGnWGAS7sooxbZowy+pK9Yg==} engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -760,8 +764,8 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.25.5': - resolution: {integrity: sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==} + '@esbuild/freebsd-arm64@0.25.6': + resolution: {integrity: sha512-aoLF2c3OvDn2XDTRvn8hN6DRzVVpDlj2B/F66clWd/FHLiHaG3aVZjxQX2DYphA5y/evbdGvC6Us13tvyt4pWg==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -778,8 +782,8 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.5': - resolution: {integrity: sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==} + '@esbuild/freebsd-x64@0.25.6': + resolution: {integrity: sha512-2SkqTjTSo2dYi/jzFbU9Plt1vk0+nNg8YC8rOXXea+iA3hfNJWebKYPs3xnOUf9+ZWhKAaxnQNUf2X9LOpeiMQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -796,8 +800,8 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.25.5': - resolution: {integrity: sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==} + '@esbuild/linux-arm64@0.25.6': + resolution: {integrity: sha512-b967hU0gqKd9Drsh/UuAm21Khpoh6mPBSgz8mKRq4P5mVK8bpA+hQzmm/ZwGVULSNBzKdZPQBRT3+WuVavcWsQ==} engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -814,8 +818,8 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.25.5': - resolution: {integrity: sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==} + '@esbuild/linux-arm@0.25.6': + resolution: {integrity: sha512-SZHQlzvqv4Du5PrKE2faN0qlbsaW/3QQfUUc6yO2EjFcA83xnwm91UbEEVx4ApZ9Z5oG8Bxz4qPE+HFwtVcfyw==} engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -832,8 +836,8 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.25.5': - resolution: {integrity: sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==} + '@esbuild/linux-ia32@0.25.6': + resolution: {integrity: sha512-aHWdQ2AAltRkLPOsKdi3xv0mZ8fUGPdlKEjIEhxCPm5yKEThcUjHpWB1idN74lfXGnZ5SULQSgtr5Qos5B0bPw==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -850,8 +854,8 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.25.5': - resolution: {integrity: sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==} + '@esbuild/linux-loong64@0.25.6': + resolution: {integrity: sha512-VgKCsHdXRSQ7E1+QXGdRPlQ/e08bN6WMQb27/TMfV+vPjjTImuT9PmLXupRlC90S1JeNNW5lzkAEO/McKeJ2yg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -868,8 +872,8 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.25.5': - resolution: {integrity: sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==} + '@esbuild/linux-mips64el@0.25.6': + resolution: {integrity: sha512-WViNlpivRKT9/py3kCmkHnn44GkGXVdXfdc4drNmRl15zVQ2+D2uFwdlGh6IuK5AAnGTo2qPB1Djppj+t78rzw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -886,8 +890,8 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.25.5': - resolution: {integrity: sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==} + '@esbuild/linux-ppc64@0.25.6': + resolution: {integrity: sha512-wyYKZ9NTdmAMb5730I38lBqVu6cKl4ZfYXIs31Baf8aoOtB4xSGi3THmDYt4BTFHk7/EcVixkOV2uZfwU3Q2Jw==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -904,8 +908,8 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.25.5': - resolution: {integrity: sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==} + '@esbuild/linux-riscv64@0.25.6': + resolution: {integrity: sha512-KZh7bAGGcrinEj4qzilJ4hqTY3Dg2U82c8bv+e1xqNqZCrCyc+TL9AUEn5WGKDzm3CfC5RODE/qc96OcbIe33w==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -922,8 +926,8 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.25.5': - resolution: {integrity: sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==} + '@esbuild/linux-s390x@0.25.6': + resolution: {integrity: sha512-9N1LsTwAuE9oj6lHMyyAM+ucxGiVnEqUdp4v7IaMmrwb06ZTEVCIs3oPPplVsnjPfyjmxwHxHMF8b6vzUVAUGw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -940,14 +944,14 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.25.5': - resolution: {integrity: sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==} + '@esbuild/linux-x64@0.25.6': + resolution: {integrity: sha512-A6bJB41b4lKFWRKNrWoP2LHsjVzNiaurf7wyj/XtFNTsnPuxwEBWHLty+ZE0dWBKuSK1fvKgrKaNjBS7qbFKig==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.5': - resolution: {integrity: sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==} + '@esbuild/netbsd-arm64@0.25.6': + resolution: {integrity: sha512-IjA+DcwoVpjEvyxZddDqBY+uJ2Snc6duLpjmkXm/v4xuS3H+3FkLZlDm9ZsAbF9rsfP3zeA0/ArNDORZgrxR/Q==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] @@ -964,14 +968,14 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.5': - resolution: {integrity: sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==} + '@esbuild/netbsd-x64@0.25.6': + resolution: {integrity: sha512-dUXuZr5WenIDlMHdMkvDc1FAu4xdWixTCRgP7RQLBOkkGgwuuzaGSYcOpW4jFxzpzL1ejb8yF620UxAqnBrR9g==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.5': - resolution: {integrity: sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==} + '@esbuild/openbsd-arm64@0.25.6': + resolution: {integrity: sha512-l8ZCvXP0tbTJ3iaqdNf3pjaOSd5ex/e6/omLIQCVBLmHTlfXW3zAxQ4fnDmPLOB1x9xrcSi/xtCWFwCZRIaEwg==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] @@ -988,12 +992,18 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.5': - resolution: {integrity: sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==} + '@esbuild/openbsd-x64@0.25.6': + resolution: {integrity: sha512-hKrmDa0aOFOr71KQ/19JC7az1P0GWtCN1t2ahYAf4O007DHZt/dW8ym5+CUdJhQ/qkZmI1HAF8KkJbEFtCL7gw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] + '@esbuild/openharmony-arm64@0.25.6': + resolution: {integrity: sha512-+SqBcAWoB1fYKmpWoQP4pGtx+pUUC//RNYhFdbcSA16617cchuryuhOCRpPsjCblKukAckWsV+aQ3UKT/RMPcA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + '@esbuild/sunos-x64@0.17.19': resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} engines: {node: '>=12'} @@ -1006,8 +1016,8 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.25.5': - resolution: {integrity: sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==} + '@esbuild/sunos-x64@0.25.6': + resolution: {integrity: sha512-dyCGxv1/Br7MiSC42qinGL8KkG4kX0pEsdb0+TKhmJZgCUDBGmyo1/ArCjNGiOLiIAgdbWgmWgib4HoCi5t7kA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -1024,8 +1034,8 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.25.5': - resolution: {integrity: sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==} + '@esbuild/win32-arm64@0.25.6': + resolution: {integrity: sha512-42QOgcZeZOvXfsCBJF5Afw73t4veOId//XD3i+/9gSkhSV6Gk3VPlWncctI+JcOyERv85FUo7RxuxGy+z8A43Q==} engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -1042,8 +1052,8 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.25.5': - resolution: {integrity: sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==} + '@esbuild/win32-ia32@0.25.6': + resolution: {integrity: sha512-4AWhgXmDuYN7rJI6ORB+uU9DHLq/erBbuMoAuB4VWJTu5KtCgcKYPynF0YI1VkBNuEfjNlLrFr9KZPJzrtLkrQ==} engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -1060,8 +1070,8 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.25.5': - resolution: {integrity: sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==} + '@esbuild/win32-x64@0.25.6': + resolution: {integrity: sha512-NgJPHHbEpLQgDH2MjQu90pzW/5vvXIZ7KOnPyNBm92A6WgZ/7b6fJyUBjoumLqeOQQGqY2QjQxRo97ah4Sj0cA==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -1193,19 +1203,19 @@ packages: resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} engines: {node: '>=14'} - '@figma/code-connect@1.3.3': - resolution: {integrity: sha512-Fxb9csQXjiIIEc1SA78rQ/2yIb1zxMKL/E59LwW/m5XELVqUsuBACxXPVLxk232xoFAZigFrcAmljxhFOBmx1Q==} + '@figma/code-connect@1.3.4': + resolution: {integrity: sha512-irK9z44i5ahTsYKY/IsCVo3L9pda8SwhVPcWRUrResIcCvPr5Cl3eiys4lwpNmnFrkPjAz81io6DnlAe5Cu4IA==} engines: {node: '>=18'} hasBin: true - '@floating-ui/core@1.7.1': - resolution: {integrity: sha512-azI0DrjMMfIug/ExbBaeDVJXcY0a7EPvPjb2xAJPa4HeimBX+Z18HK8QQR3jb6356SnDDdxx+hinMLcJEDdOjw==} + '@floating-ui/core@1.7.2': + resolution: {integrity: sha512-wNB5ooIKHQc+Kui96jE/n69rHFWAVoxn5CAzL1Xdd8FG03cgY3MLO+GF9U3W737fYDSgPWA6MReKhBQBop6Pcw==} - '@floating-ui/dom@1.7.1': - resolution: {integrity: sha512-cwsmW/zyw5ltYTUeeYJ60CnQuPqmGwuGVhG9w0PRaRKkAyi38BT5CKrpIbb+jtahSwUl04cWzSx9ZOIxeS6RsQ==} + '@floating-ui/dom@1.7.2': + resolution: {integrity: sha512-7cfaOQuCS27HD7DX+6ib2OrnW+b4ZBwDNnCcT0uTyidcmyWb03FnQqJybDBoCnpdxwBSfA94UAYlRCt7mV+TbA==} - '@floating-ui/react-dom@2.1.3': - resolution: {integrity: sha512-huMBfiU9UnQ2oBwIhgzyIiSpVgvlDstU8CX0AF+wS+KzmYMs0J2a3GwuFHV1Lz+jlrQGeC1fF+Nv0QoumyV0bA==} + '@floating-ui/react-dom@2.1.4': + resolution: {integrity: sha512-JbbpPhp38UmXDDAu60RJmbeme37Jbgsm7NrHGgzYYFKmblzRUh6Pa641dII6LsjwF4XlScDrde2UAzDo/b9KPw==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' @@ -1216,14 +1226,14 @@ packages: react: '>=16.8.0' react-dom: '>=16.8.0' - '@floating-ui/react@0.27.12': - resolution: {integrity: sha512-kKlWNrpIQxF1B/a2MZvE0/uyKby4960yjO91W7nVyNKmmfNi62xU9HCjL1M1eWzx/LFj/VPSwJVbwQk9Pq/68A==} + '@floating-ui/react@0.27.13': + resolution: {integrity: sha512-Qmj6t9TjgWAvbygNEu1hj4dbHI9CY0ziCMIJrmYoDIn9TUAH5lRmiIeZmRd4c6QEZkzdoH7jNnoNyoY1AIESiA==} peerDependencies: react: '>=17.0.0' react-dom: '>=17.0.0' - '@floating-ui/utils@0.2.9': - resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} + '@floating-ui/utils@0.2.10': + resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} '@formatjs/ecma402-abstract@2.3.4': resolution: {integrity: sha512-qrycXDeaORzIqNhBOx0btnhpD1c+/qFIHAN9znofuMJX6QBwtbrmlpWfD4oiUUD2vJUOIYFA/gYtg2KAMGG7sA==} @@ -1405,23 +1415,18 @@ packages: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} - '@jridgewell/gen-mapping@0.3.8': - resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} - engines: {node: '>=6.0.0'} + '@jridgewell/gen-mapping@0.3.12': + resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==} '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + '@jridgewell/sourcemap-codec@1.5.4': + resolution: {integrity: sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==} - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jridgewell/trace-mapping@0.3.29': + resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==} '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} @@ -1438,8 +1443,8 @@ packages: '@types/react': '>=16' react: '>=16' - '@mermaid-js/parser@0.5.0': - resolution: {integrity: sha512-AiaN7+VjXC+3BYE+GwNezkpjIcCI2qIMB/K4S2/vMWe0q/XJCBbx5+K7iteuz7VyltX9iAK4FmVTvGc9kjOV4w==} + '@mermaid-js/parser@0.6.1': + resolution: {integrity: sha512-lCQNpV8R4lgsGcjX5667UiuDLk2micCtjtxR1YKbBXvN5w2v+FeLYoHrTSSrjwXdMcDYvE4ZBPvKT31dfeSmmA==} '@napi-rs/simple-git-android-arm-eabi@0.1.19': resolution: {integrity: sha512-XryEH/hadZ4Duk/HS/HC/cA1j0RHmqUGey3MsCf65ZS0VrWMqChXM/xlTPWuY5jfCc/rPubHaqI7DZlbexnX/g==} @@ -1644,36 +1649,36 @@ packages: resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} engines: {node: '>=12.4.0'} - '@nomicfoundation/edr-darwin-arm64@0.11.2': - resolution: {integrity: sha512-/QU0GHeoLFOJp28qK46kkTG849NN/5Qgq9ifKzhqBas1MCqwcdjrUI3raGkvE9SWJevljWd1HdW16fFpxUrzbA==} + '@nomicfoundation/edr-darwin-arm64@0.11.3': + resolution: {integrity: sha512-w0tksbdtSxz9nuzHKsfx4c2mwaD0+l5qKL2R290QdnN9gi9AV62p9DHkOgfBdyg6/a6ZlnQqnISi7C9avk/6VA==} engines: {node: '>= 18'} - '@nomicfoundation/edr-darwin-x64@0.11.2': - resolution: {integrity: sha512-Dam+k00vyYNXCkM7JZGQBm0McNaL6ilbfY8BuIdHU2mpIVO5hpAFk8IQnMnG3FRuXuPJ0JoSTkn1R495T8AKqw==} + '@nomicfoundation/edr-darwin-x64@0.11.3': + resolution: {integrity: sha512-QR4jAFrPbOcrO7O2z2ESg+eUeIZPe2bPIlQYgiJ04ltbSGW27FblOzdd5+S3RoOD/dsZGKAvvy6dadBEl0NgoA==} engines: {node: '>= 18'} - '@nomicfoundation/edr-linux-arm64-gnu@0.11.2': - resolution: {integrity: sha512-6Z+hZ61c0v5EPVhCAc/rV36eN20GbPRfcmUeFJ3t+RjdY20EiUQzP85YU0q3AgCuwr410W27pazoBoL73cCPbg==} + '@nomicfoundation/edr-linux-arm64-gnu@0.11.3': + resolution: {integrity: sha512-Ktjv89RZZiUmOFPspuSBVJ61mBZQ2+HuLmV67InNlh9TSUec/iDjGIwAn59dx0bF/LOSrM7qg5od3KKac4LJDQ==} engines: {node: '>= 18'} - '@nomicfoundation/edr-linux-arm64-musl@0.11.2': - resolution: {integrity: sha512-AqC4AI3pR4vSsEcFyW/6rI1q16wEjIRYIR25IJO/EdBmXdsuVZgxsf/kMUCWQhhTuy89RTgIGTbMAQA0+DfSvA==} + '@nomicfoundation/edr-linux-arm64-musl@0.11.3': + resolution: {integrity: sha512-B3sLJx1rL2E9pfdD4mApiwOZSrX0a/KQSBWdlq1uAhFKqkl00yZaY4LejgZndsJAa4iKGQJlGnw4HCGeVt0+jA==} engines: {node: '>= 18'} - '@nomicfoundation/edr-linux-x64-gnu@0.11.2': - resolution: {integrity: sha512-vz1uiof1ZIi6RnXfHZiAXRgkloLciuYGD1rNDrqm1Pp7Nf0pbxw+e4TBQLoMYKzZn0MYS4u4Fa0AV2S7NjfptQ==} + '@nomicfoundation/edr-linux-x64-gnu@0.11.3': + resolution: {integrity: sha512-D/4cFKDXH6UYyKPu6J3Y8TzW11UzeQI0+wS9QcJzjlrrfKj0ENW7g9VihD1O2FvXkdkTjcCZYb6ai8MMTCsaVw==} engines: {node: '>= 18'} - '@nomicfoundation/edr-linux-x64-musl@0.11.2': - resolution: {integrity: sha512-ArAbcrWwn+8Ze8JAaA9349N2E7hfs9PYvxDgfhujEH9iVC9XI6L+OhMATPsS3wkOST/+ykxELAF1KT4YjSxcrA==} + '@nomicfoundation/edr-linux-x64-musl@0.11.3': + resolution: {integrity: sha512-ergXuIb4nIvmf+TqyiDX5tsE49311DrBky6+jNLgsGDTBaN1GS3OFwFS8I6Ri/GGn6xOaT8sKu3q7/m+WdlFzg==} engines: {node: '>= 18'} - '@nomicfoundation/edr-win32-x64-msvc@0.11.2': - resolution: {integrity: sha512-GDXBhxy5wlmZYQrTXu9Oh9OPTsi4tCdmHy1z8O9XqdH9wsP674Frh6Fb43yjVoS2Ek1F9yX11nexIrFXSuNyJQ==} + '@nomicfoundation/edr-win32-x64-msvc@0.11.3': + resolution: {integrity: sha512-snvEf+WB3OV0wj2A7kQ+ZQqBquMcrozSLXcdnMdEl7Tmn+KDCbmFKBt3Tk0X3qOU4RKQpLPnTxdM07TJNVtung==} engines: {node: '>= 18'} - '@nomicfoundation/edr@0.11.2': - resolution: {integrity: sha512-JEFMTs5Tju+YiCsv6EO+657O/fvPaQ7bkUCkWqHFYFFbCKH1yh0PeRIaqj5h4z4O16ckxbVpAM676ZFTmvFUGQ==} + '@nomicfoundation/edr@0.11.3': + resolution: {integrity: sha512-kqILRkAd455Sd6v8mfP3C1/0tCOynJWY+Ir+k/9Boocu2kObCrsFgG+ZWB7fSBVdd9cPVSNrnhWS+V+PEo637g==} engines: {node: '>= 18'} '@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.2': @@ -2768,103 +2773,103 @@ packages: resolution: {integrity: sha512-FqALmHI8D4o6lk/LRWDnhw95z5eO+eAa6ORjVg09YRR7BkcM6oPHU9uyC0gtQG5vpFLvgpeU4+zEAz2H8APHNw==} engines: {node: '>= 10'} - '@rollup/rollup-android-arm-eabi@4.44.0': - resolution: {integrity: sha512-xEiEE5oDW6tK4jXCAyliuntGR+amEMO7HLtdSshVuhFnKTYoeYMyXQK7pLouAJJj5KHdwdn87bfHAR2nSdNAUA==} + '@rollup/rollup-android-arm-eabi@4.44.2': + resolution: {integrity: sha512-g0dF8P1e2QYPOj1gu7s/3LVP6kze9A7m6x0BZ9iTdXK8N5c2V7cpBKHV3/9A4Zd8xxavdhK0t4PnqjkqVmUc9Q==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.44.0': - resolution: {integrity: sha512-uNSk/TgvMbskcHxXYHzqwiyBlJ/lGcv8DaUfcnNwict8ba9GTTNxfn3/FAoFZYgkaXXAdrAA+SLyKplyi349Jw==} + '@rollup/rollup-android-arm64@4.44.2': + resolution: {integrity: sha512-Yt5MKrOosSbSaAK5Y4J+vSiID57sOvpBNBR6K7xAaQvk3MkcNVV0f9fE20T+41WYN8hDn6SGFlFrKudtx4EoxA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.44.0': - resolution: {integrity: sha512-VGF3wy0Eq1gcEIkSCr8Ke03CWT+Pm2yveKLaDvq51pPpZza3JX/ClxXOCmTYYq3us5MvEuNRTaeyFThCKRQhOA==} + '@rollup/rollup-darwin-arm64@4.44.2': + resolution: {integrity: sha512-EsnFot9ZieM35YNA26nhbLTJBHD0jTwWpPwmRVDzjylQT6gkar+zenfb8mHxWpRrbn+WytRRjE0WKsfaxBkVUA==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.44.0': - resolution: {integrity: sha512-fBkyrDhwquRvrTxSGH/qqt3/T0w5Rg0L7ZIDypvBPc1/gzjJle6acCpZ36blwuwcKD/u6oCE/sRWlUAcxLWQbQ==} + '@rollup/rollup-darwin-x64@4.44.2': + resolution: {integrity: sha512-dv/t1t1RkCvJdWWxQ2lWOO+b7cMsVw5YFaS04oHpZRWehI1h0fV1gF4wgGCTyQHHjJDfbNpwOi6PXEafRBBezw==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.44.0': - resolution: {integrity: sha512-u5AZzdQJYJXByB8giQ+r4VyfZP+walV+xHWdaFx/1VxsOn6eWJhK2Vl2eElvDJFKQBo/hcYIBg/jaKS8ZmKeNQ==} + '@rollup/rollup-freebsd-arm64@4.44.2': + resolution: {integrity: sha512-W4tt4BLorKND4qeHElxDoim0+BsprFTwb+vriVQnFFtT/P6v/xO5I99xvYnVzKWrK6j7Hb0yp3x7V5LUbaeOMg==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.44.0': - resolution: {integrity: sha512-qC0kS48c/s3EtdArkimctY7h3nHicQeEUdjJzYVJYR3ct3kWSafmn6jkNCA8InbUdge6PVx6keqjk5lVGJf99g==} + '@rollup/rollup-freebsd-x64@4.44.2': + resolution: {integrity: sha512-tdT1PHopokkuBVyHjvYehnIe20fxibxFCEhQP/96MDSOcyjM/shlTkZZLOufV3qO6/FQOSiJTBebhVc12JyPTA==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.44.0': - resolution: {integrity: sha512-x+e/Z9H0RAWckn4V2OZZl6EmV0L2diuX3QB0uM1r6BvhUIv6xBPL5mrAX2E3e8N8rEHVPwFfz/ETUbV4oW9+lQ==} + '@rollup/rollup-linux-arm-gnueabihf@4.44.2': + resolution: {integrity: sha512-+xmiDGGaSfIIOXMzkhJ++Oa0Gwvl9oXUeIiwarsdRXSe27HUIvjbSIpPxvnNsRebsNdUo7uAiQVgBD1hVriwSQ==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.44.0': - resolution: {integrity: sha512-1exwiBFf4PU/8HvI8s80icyCcnAIB86MCBdst51fwFmH5dyeoWVPVgmQPcKrMtBQ0W5pAs7jBCWuRXgEpRzSCg==} + '@rollup/rollup-linux-arm-musleabihf@4.44.2': + resolution: {integrity: sha512-bDHvhzOfORk3wt8yxIra8N4k/N0MnKInCW5OGZaeDYa/hMrdPaJzo7CSkjKZqX4JFUWjUGm88lI6QJLCM7lDrA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.44.0': - resolution: {integrity: sha512-ZTR2mxBHb4tK4wGf9b8SYg0Y6KQPjGpR4UWwTFdnmjB4qRtoATZ5dWn3KsDwGa5Z2ZBOE7K52L36J9LueKBdOQ==} + '@rollup/rollup-linux-arm64-gnu@4.44.2': + resolution: {integrity: sha512-NMsDEsDiYghTbeZWEGnNi4F0hSbGnsuOG+VnNvxkKg0IGDvFh7UVpM/14mnMwxRxUf9AdAVJgHPvKXf6FpMB7A==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.44.0': - resolution: {integrity: sha512-GFWfAhVhWGd4r6UxmnKRTBwP1qmModHtd5gkraeW2G490BpFOZkFtem8yuX2NyafIP/mGpRJgTJ2PwohQkUY/Q==} + '@rollup/rollup-linux-arm64-musl@4.44.2': + resolution: {integrity: sha512-lb5bxXnxXglVq+7imxykIp5xMq+idehfl+wOgiiix0191av84OqbjUED+PRC5OA8eFJYj5xAGcpAZ0pF2MnW+A==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.44.0': - resolution: {integrity: sha512-xw+FTGcov/ejdusVOqKgMGW3c4+AgqrfvzWEVXcNP6zq2ue+lsYUgJ+5Rtn/OTJf7e2CbgTFvzLW2j0YAtj0Gg==} + '@rollup/rollup-linux-loongarch64-gnu@4.44.2': + resolution: {integrity: sha512-Yl5Rdpf9pIc4GW1PmkUGHdMtbx0fBLE1//SxDmuf3X0dUC57+zMepow2LK0V21661cjXdTn8hO2tXDdAWAqE5g==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.44.0': - resolution: {integrity: sha512-bKGibTr9IdF0zr21kMvkZT4K6NV+jjRnBoVMt2uNMG0BYWm3qOVmYnXKzx7UhwrviKnmK46IKMByMgvpdQlyJQ==} + '@rollup/rollup-linux-powerpc64le-gnu@4.44.2': + resolution: {integrity: sha512-03vUDH+w55s680YYryyr78jsO1RWU9ocRMaeV2vMniJJW/6HhoTBwyyiiTPVHNWLnhsnwcQ0oH3S9JSBEKuyqw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.44.0': - resolution: {integrity: sha512-vV3cL48U5kDaKZtXrti12YRa7TyxgKAIDoYdqSIOMOFBXqFj2XbChHAtXquEn2+n78ciFgr4KIqEbydEGPxXgA==} + '@rollup/rollup-linux-riscv64-gnu@4.44.2': + resolution: {integrity: sha512-iYtAqBg5eEMG4dEfVlkqo05xMOk6y/JXIToRca2bAWuqjrJYJlx/I7+Z+4hSrsWU8GdJDFPL4ktV3dy4yBSrzg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.44.0': - resolution: {integrity: sha512-TDKO8KlHJuvTEdfw5YYFBjhFts2TR0VpZsnLLSYmB7AaohJhM8ctDSdDnUGq77hUh4m/djRafw+9zQpkOanE2Q==} + '@rollup/rollup-linux-riscv64-musl@4.44.2': + resolution: {integrity: sha512-e6vEbgaaqz2yEHqtkPXa28fFuBGmUJ0N2dOJK8YUfijejInt9gfCSA7YDdJ4nYlv67JfP3+PSWFX4IVw/xRIPg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.44.0': - resolution: {integrity: sha512-8541GEyktXaw4lvnGp9m84KENcxInhAt6vPWJ9RodsB/iGjHoMB2Pp5MVBCiKIRxrxzJhGCxmNzdu+oDQ7kwRA==} + '@rollup/rollup-linux-s390x-gnu@4.44.2': + resolution: {integrity: sha512-evFOtkmVdY3udE+0QKrV5wBx7bKI0iHz5yEVx5WqDJkxp9YQefy4Mpx3RajIVcM6o7jxTvVd/qpC1IXUhGc1Mw==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.44.0': - resolution: {integrity: sha512-iUVJc3c0o8l9Sa/qlDL2Z9UP92UZZW1+EmQ4xfjTc1akr0iUFZNfxrXJ/R1T90h/ILm9iXEY6+iPrmYB3pXKjw==} + '@rollup/rollup-linux-x64-gnu@4.44.2': + resolution: {integrity: sha512-/bXb0bEsWMyEkIsUL2Yt5nFB5naLAwyOWMEviQfQY1x3l5WsLKgvZf66TM7UTfED6erckUVUJQ/jJ1FSpm3pRQ==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.44.0': - resolution: {integrity: sha512-PQUobbhLTQT5yz/SPg116VJBgz+XOtXt8D1ck+sfJJhuEsMj2jSej5yTdp8CvWBSceu+WW+ibVL6dm0ptG5fcA==} + '@rollup/rollup-linux-x64-musl@4.44.2': + resolution: {integrity: sha512-3D3OB1vSSBXmkGEZR27uiMRNiwN08/RVAcBKwhUYPaiZ8bcvdeEwWPvbnXvvXHY+A/7xluzcN+kaiOFNiOZwWg==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.44.0': - resolution: {integrity: sha512-M0CpcHf8TWn+4oTxJfh7LQuTuaYeXGbk0eageVjQCKzYLsajWS/lFC94qlRqOlyC2KvRT90ZrfXULYmukeIy7w==} + '@rollup/rollup-win32-arm64-msvc@4.44.2': + resolution: {integrity: sha512-VfU0fsMK+rwdK8mwODqYeM2hDrF2WiHaSmCBrS7gColkQft95/8tphyzv2EupVxn3iE0FI78wzffoULH1G+dkw==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.44.0': - resolution: {integrity: sha512-3XJ0NQtMAXTWFW8FqZKcw3gOQwBtVWP/u8TpHP3CRPXD7Pd6s8lLdH3sHWh8vqKCyyiI8xW5ltJScQmBU9j7WA==} + '@rollup/rollup-win32-ia32-msvc@4.44.2': + resolution: {integrity: sha512-+qMUrkbUurpE6DVRjiJCNGZBGo9xM4Y0FXU5cjgudWqIBWbcLkjE3XprJUsOFgC6xjBClwVa9k6O3A7K3vxb5Q==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.44.0': - resolution: {integrity: sha512-Q2Mgwt+D8hd5FIPUuPDsvPR7Bguza6yTkJxspDGkZj7tBRn2y4KSWYuIXpftFSjBra76TbKerCV7rgFPQrn+wQ==} + '@rollup/rollup-win32-x64-msvc@4.44.2': + resolution: {integrity: sha512-3+QZROYfJ25PDcxFF66UEk8jGWigHJeecZILvkPkyQN7oc5BvFo4YEXFkOs154j3FTMp9mn9Ky8RCOwastduEA==} cpu: [x64] os: [win32] @@ -2877,8 +2882,8 @@ packages: '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} - '@rushstack/eslint-patch@1.11.0': - resolution: {integrity: sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==} + '@rushstack/eslint-patch@1.12.0': + resolution: {integrity: sha512-5EwMtOqvJMMa3HbmxLlF74e+3/HhwBTMcvt3nqVJgGCozO6hzIPOBlwm8mGVNR9SN2IJpxSnlxczyDjcn7qIyw==} '@scure/base@1.1.9': resolution: {integrity: sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==} @@ -3041,22 +3046,22 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - '@tanstack/query-core@5.81.2': - resolution: {integrity: sha512-QLYkPdrudoMATDFa3MiLEwRhNnAlzHWDf0LKaXUqJd0/+QxN8uTPi7bahRlxoAyH0UbLMBdeDbYzWALj7THOtw==} + '@tanstack/query-core@5.82.0': + resolution: {integrity: sha512-JrjoVuaajBQtnoWSg8iaPHaT4mW73lK2t+exxHNOSMqy0+13eKLqJgTKXKImLejQIfdAHQ6Un0njEhOvUtOd5w==} - '@tanstack/react-query@5.81.2': - resolution: {integrity: sha512-pe8kFlTrL2zFLlcAj2kZk9UaYYHDk9/1hg9EBaoO3cxDhOZf1FRGJeziSXKrVZyxIfs7b3aoOj/bw7Lie0mDUg==} + '@tanstack/react-query@5.82.0': + resolution: {integrity: sha512-mnk8/ofKEthFeMdhV1dV8YXRf+9HqvXAcciXkoo755d/ocfWq7N/Y9jGOzS3h7ZW9dDGwSIhs3/HANWUBsyqYg==} peerDependencies: react: ^18 || ^19 - '@tanstack/react-virtual@3.13.11': - resolution: {integrity: sha512-u5EaOSJOq08T9NXFuDopMdxZBNDFuEMohIFFU45fBYDXXh9SjYdbpNq1OLFSOpQnDRPjqgmY96ipZTkzom9t9Q==} + '@tanstack/react-virtual@3.13.12': + resolution: {integrity: sha512-Gd13QdxPSukP8ZrkbgS2RwoZseTTbQPLnQEn7HY/rqtM+8Zt95f7xKC7N0EsKs7aoz0WzZ+fditZux+F8EzYxA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - '@tanstack/virtual-core@3.13.11': - resolution: {integrity: sha512-ORL6UyuZJ0D9X33LDR4TcgcM+K2YiS2j4xbvH1vnhhObwR1Z4dKwPTL/c0kj2Yeb4Yp2lBv1wpyVaqlohk8zpg==} + '@tanstack/virtual-core@3.13.12': + resolution: {integrity: sha512-1YBOJfRHV4sXUmWsFSf5rQor4Ss82G8dQWLRbnk3GA4jeP8hQt1hxXh0tmflpC0dz3VgEv/1+qwPyLeWkQuPFA==} '@theguild/remark-mermaid@0.1.3': resolution: {integrity: sha512-2FjVlaaKXK7Zj7UJAgOVTyaahn/3/EAfqYhyXg0BfDBVUl+lXcoIWRaxzqfnDr2rv8ax6GsC5mNh6hAaT86PDw==} @@ -3250,8 +3255,8 @@ packages: '@types/katex@0.16.7': resolution: {integrity: sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==} - '@types/lodash@4.17.19': - resolution: {integrity: sha512-NYqRyg/hIQrYPT9lbOeYc3kIRabJDn/k4qQHIXUpx88CBDww2fD15Sg5kbXlW86zm2XEW4g0QxkTI3/Kfkc7xQ==} + '@types/lodash@4.17.20': + resolution: {integrity: sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==} '@types/lru-cache@5.1.1': resolution: {integrity: sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==} @@ -3271,8 +3276,8 @@ packages: '@types/nlcst@2.0.3': resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} - '@types/node@22.15.33': - resolution: {integrity: sha512-wzoocdnnpSxZ+6CjW4ADCK1jVmd1S/J3ArNWfn8FDDQtRm8dkDg7TA+mvek2wNrfCgwuZxqEOiB9B1XCJ6+dbw==} + '@types/node@22.16.2': + resolution: {integrity: sha512-Cdqa/eJTvt4fC4wmq1Mcc0CPUjp/Qy2FGqLza3z3pKymsI969TcZ54diNJv8UYUgeWxyb8FSbCkhdR6WqmUFhA==} '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} @@ -3416,98 +3421,98 @@ packages: engines: {node: '>=10'} deprecated: Please upgrade to 1.0.1 - '@unrs/resolver-binding-android-arm-eabi@1.9.1': - resolution: {integrity: sha512-dd7yIp1hfJFX9ZlVLQRrh/Re9WMUHHmF9hrKD1yIvxcyNr2BhQ3xc1upAVhy8NijadnCswAxWQu8MkkSMC1qXQ==} + '@unrs/resolver-binding-android-arm-eabi@1.11.1': + resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} cpu: [arm] os: [android] - '@unrs/resolver-binding-android-arm64@1.9.1': - resolution: {integrity: sha512-EzUPcMFtDVlo5yrbzMqUsGq3HnLXw+3ZOhSd7CUaDmbTtnrzM+RO2ntw2dm2wjbbc5djWj3yX0wzbbg8pLhx8g==} + '@unrs/resolver-binding-android-arm64@1.11.1': + resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==} cpu: [arm64] os: [android] - '@unrs/resolver-binding-darwin-arm64@1.9.1': - resolution: {integrity: sha512-nB+dna3q4kOleKFcSZJ/wDXIsAd1kpMO9XrVAt8tG3RDWJ6vi+Ic6bpz4cmg5tWNeCfHEY4KuqJCB+pKejPEmQ==} + '@unrs/resolver-binding-darwin-arm64@1.11.1': + resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==} cpu: [arm64] os: [darwin] - '@unrs/resolver-binding-darwin-x64@1.9.1': - resolution: {integrity: sha512-aKWHCrOGaCGwZcekf3TnczQoBxk5w//W3RZ4EQyhux6rKDwBPgDU9Y2yGigCV1Z+8DWqZgVGQi+hdpnlSy3a1w==} + '@unrs/resolver-binding-darwin-x64@1.11.1': + resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==} cpu: [x64] os: [darwin] - '@unrs/resolver-binding-freebsd-x64@1.9.1': - resolution: {integrity: sha512-4dIEMXrXt0UqDVgrsUd1I+NoIzVQWXy/CNhgpfS75rOOMK/4Abn0Mx2M2gWH4Mk9+ds/ASAiCmqoUFynmMY5hA==} + '@unrs/resolver-binding-freebsd-x64@1.11.1': + resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==} cpu: [x64] os: [freebsd] - '@unrs/resolver-binding-linux-arm-gnueabihf@1.9.1': - resolution: {integrity: sha512-vtvS13IXPs1eE8DuS/soiosqMBeyh50YLRZ+p7EaIKAPPeevRnA9G/wu/KbVt01ZD5qiGjxS+CGIdVC7I6gTOw==} + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==} cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm-musleabihf@1.9.1': - resolution: {integrity: sha512-BfdnN6aZ7NcX8djW8SR6GOJc+K+sFhWRF4vJueVE0vbUu5N1bLnBpxJg1TGlhSyo+ImC4SR0jcNiKN0jdoxt+A==} + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==} cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm64-gnu@1.9.1': - resolution: {integrity: sha512-Jhge7lFtH0QqfRz2PyJjJXWENqywPteITd+nOS0L6AhbZli+UmEyGBd2Sstt1c+l9C+j/YvKTl9wJo9PPmsFNg==} + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} cpu: [arm64] os: [linux] - '@unrs/resolver-binding-linux-arm64-musl@1.9.1': - resolution: {integrity: sha512-ofdK/ow+ZSbSU0pRoB7uBaiRHeaAOYQFU5Spp87LdcPL/P1RhbCTMSIYVb61XWzsVEmYKjHFtoIE0wxP6AFvrA==} + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} cpu: [arm64] os: [linux] - '@unrs/resolver-binding-linux-ppc64-gnu@1.9.1': - resolution: {integrity: sha512-eC8SXVn8de67HacqU7PoGdHA+9tGbqfEdD05AEFRAB81ejeQtNi5Fx7lPcxpLH79DW0BnMAHau3hi4RVkHfSCw==} + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} cpu: [ppc64] os: [linux] - '@unrs/resolver-binding-linux-riscv64-gnu@1.9.1': - resolution: {integrity: sha512-fIkwvAAQ41kfoGWfzeJ33iLGShl0JEDZHrMnwTHMErUcPkaaZRJYjQjsFhMl315NEQ4mmTlC+2nfK/J2IszDOw==} + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} cpu: [riscv64] os: [linux] - '@unrs/resolver-binding-linux-riscv64-musl@1.9.1': - resolution: {integrity: sha512-RAAszxImSOFLk44aLwnSqpcOdce8sBcxASledSzuFAd8Q5ZhhVck472SisspnzHdc7THCvGXiUeZ2hOC7NUoBQ==} + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} cpu: [riscv64] os: [linux] - '@unrs/resolver-binding-linux-s390x-gnu@1.9.1': - resolution: {integrity: sha512-QoP9vkY+THuQdZi05bA6s6XwFd6HIz3qlx82v9bTOgxeqin/3C12Ye7f7EOD00RQ36OtOPWnhEMMm84sv7d1XQ==} + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} cpu: [s390x] os: [linux] - '@unrs/resolver-binding-linux-x64-gnu@1.9.1': - resolution: {integrity: sha512-/p77cGN/h9zbsfCseAP5gY7tK+7+DdM8fkPfr9d1ye1fsF6bmtGbtZN6e/8j4jCZ9NEIBBkT0GhdgixSelTK9g==} + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} cpu: [x64] os: [linux] - '@unrs/resolver-binding-linux-x64-musl@1.9.1': - resolution: {integrity: sha512-wInTqT3Bu9u50mDStEig1v8uxEL2Ht+K8pir/YhyyrM5ordJtxoqzsL1vR/CQzOJuDunUTrDkMM0apjW/d7/PA==} + '@unrs/resolver-binding-linux-x64-musl@1.11.1': + resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} cpu: [x64] os: [linux] - '@unrs/resolver-binding-wasm32-wasi@1.9.1': - resolution: {integrity: sha512-eNwqO5kUa+1k7yFIircwwiniKWA0UFHo2Cfm8LYgkh9km7uMad+0x7X7oXbQonJXlqfitBTSjhA0un+DsHIrhw==} + '@unrs/resolver-binding-wasm32-wasi@1.11.1': + resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@unrs/resolver-binding-win32-arm64-msvc@1.9.1': - resolution: {integrity: sha512-Eaz1xMUnoa2mFqh20mPqSdbYl6crnk8HnIXDu6nsla9zpgZJZO8w3c1gvNN/4Eb0RXRq3K9OG6mu8vw14gIqiA==} + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==} cpu: [arm64] os: [win32] - '@unrs/resolver-binding-win32-ia32-msvc@1.9.1': - resolution: {integrity: sha512-H/+d+5BGlnEQif0gnwWmYbYv7HJj563PUKJfn8PlmzF8UmF+8KxdvXdwCsoOqh4HHnENnoLrav9NYBrv76x1wQ==} + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==} cpu: [ia32] os: [win32] - '@unrs/resolver-binding-win32-x64-msvc@1.9.1': - resolution: {integrity: sha512-rS86wI4R6cknYM3is3grCb/laE8XBEbpWAMSIPjYfmYp75KL5dT87jXF2orDa4tQYg5aajP5G8Fgh34dRyR+Rw==} + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==} cpu: [x64] os: [win32] @@ -3544,13 +3549,13 @@ packages: '@vitest/utils@2.1.9': resolution: {integrity: sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==} - '@web3icons/common@0.11.13': - resolution: {integrity: sha512-oqgc6KZPp3b8RYC0ibS16Ds7vhGWHNUh0JKmgHa9wwJcy00QMBbggpiHfwrdxs4SCVkAJk8w6o3T0rNTpXwi9g==} + '@web3icons/common@0.11.14': + resolution: {integrity: sha512-TEqInrR1fCW9V6bI5AbmZjxsTGbyF7jF0XJS9dsS3PAokVnkGGNKAP8J2wiqyFZ7kZSpcnnNLqarsliIvEUSIA==} peerDependencies: typescript: ^5.0.0 - '@web3icons/react@4.0.16': - resolution: {integrity: sha512-RPRZxiGX53aOHNYYAHNUqNDE7HEeDCKvLwv/SeFHLk0MIRcTxVqn0Kn4w9pkjA/0aVVhFH17oBdMQPbDujMtfg==} + '@web3icons/react@4.0.17': + resolution: {integrity: sha512-es05+Oy+mb1wnFossmdK2orTI0rb5BMUUBdRchrTgtlPS9zrDgGtTNwYNciQFfKOSx0AQtwwzdBYmDSAxduagw==} peerDependencies: react: ^18.2.0 @@ -3618,8 +3623,8 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} - agent-base@7.1.3: - resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} + agent-base@7.1.4: + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} aggregate-error@3.1.0: @@ -3640,8 +3645,8 @@ packages: ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} - algoliasearch@5.29.0: - resolution: {integrity: sha512-E2l6AlTWGznM2e7vEE6T6hzObvEyXukxMOlBmVlMyixZyK1umuO/CiVc6sDBbzVH0oEviCE5IfVY1oZBmccYPQ==} + algoliasearch@5.32.0: + resolution: {integrity: sha512-84xBncKNPBK8Ae89F65+SyVcOihrIbm/3N7to+GpRBHEUXGjA3ydWTMpcRW6jmFzkBQ/eqYy/y+J+NBpJWYjBg==} engines: {node: '>= 14.0.0'} ansi-align@3.0.1: @@ -3853,8 +3858,8 @@ packages: browser-stdout@1.3.1: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} - browserslist@4.25.0: - resolution: {integrity: sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==} + browserslist@4.25.1: + resolution: {integrity: sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -3909,15 +3914,15 @@ packages: camelize@1.0.1: resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} - caniuse-lite@1.0.30001724: - resolution: {integrity: sha512-WqJo7p0TbHDOythNTqYujmaJTvtYRZrjpP8TCvH6Vb9CYJerJNKamKzIWOM4BkQatWj9H2lYulpdAQNBe7QhNA==} + caniuse-lite@1.0.30001727: + resolution: {integrity: sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - chai@5.2.0: - resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==} - engines: {node: '>=12'} + chai@5.2.1: + resolution: {integrity: sha512-5nFxhUrX0PqtyogoYOA8IPswy5sZFTOsBFl/9bNsmDLgsxYTzSZQJDPppDnZPTQbzSEm0hqGjWPzRemQCYbD6A==} + engines: {node: '>=18'} chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -3965,8 +3970,8 @@ packages: ci-info@2.0.0: resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} - ci-info@4.2.0: - resolution: {integrity: sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==} + ci-info@4.3.0: + resolution: {integrity: sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==} engines: {node: '>=8'} clean-stack@2.2.0: @@ -4142,8 +4147,8 @@ packages: engines: {node: '>=4'} hasBin: true - cssstyle@4.5.0: - resolution: {integrity: sha512-/7gw8TGrvH/0g564EnhgFZogTMVe+lifpB7LWU+PEsiq5o83TUXR3fDbzTRXOJhoJwck5IS9ez3Em5LNMMO2aw==} + cssstyle@4.6.0: + resolution: {integrity: sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==} engines: {node: '>=18'} csstype@3.1.3: @@ -4159,8 +4164,8 @@ packages: peerDependencies: cytoscape: ^3.2.0 - cytoscape@3.32.0: - resolution: {integrity: sha512-5JHBC9n75kz5851jeklCPmZWcg3hUe6sjqJvyk3+hVqFaKcHwHgxsjeN1yLmggoUc6STbtm9/NQyabQehfjvWQ==} + cytoscape@3.32.1: + resolution: {integrity: sha512-dbeqFTLYEwlFg7UGtcZhCCG/2WayX72zK3Sq323CEX29CY81tYfVhw1MIdduCtpstB0cTOhJswWlM/OEB3Xp+Q==} engines: {node: '>=0.10'} d3-array@2.12.1: @@ -4357,8 +4362,8 @@ packages: decimal.js-light@2.5.1: resolution: {integrity: sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==} - decimal.js@10.5.0: - resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==} + decimal.js@10.6.0: + resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} decode-named-character-reference@1.2.0: resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} @@ -4449,8 +4454,8 @@ packages: resolution: {integrity: sha512-vwEppIphpFdvaMCaHfCEv9IgwcxMljMw2TnAQBB4VWPvzXQLTb82jwmdOKzlEVUL3gNFT4l4TPKO+Bn+sqcrVQ==} engines: {node: '>=12'} - dotenv@16.5.0: - resolution: {integrity: sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==} + dotenv@16.6.1: + resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} engines: {node: '>=12'} dunder-proto@1.0.1: @@ -4460,8 +4465,8 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - electron-to-chromium@1.5.172: - resolution: {integrity: sha512-fnKW9dGgmBfsebbYognQSv0CGGLFH1a5iV9EDYTBwmAQn+whbzHbLFlC+3XbHc8xaNtpO0etm8LOcRXs1qMRkQ==} + electron-to-chromium@1.5.181: + resolution: {integrity: sha512-+ISMj8OIQ+0qEeDj14Rt8WwcTOiqHyAB+5bnK1K7xNNLjBJ4hRCQfUkw8RWtcLbfBzDwc15ZnKH0c7SNOfwiyA==} elliptic@6.6.1: resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==} @@ -4554,8 +4559,8 @@ packages: engines: {node: '>=12'} hasBin: true - esbuild@0.25.5: - resolution: {integrity: sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==} + esbuild@0.25.6: + resolution: {integrity: sha512-GVuzuUwtdsghE3ocJ9Bs8PNoF13HNQ5TXbEi2AhvVb8xU1Iwt9Fos9FEamfoee+u/TOsn7GUWc04lz46n2bbTg==} engines: {node: '>=18'} hasBin: true @@ -4590,8 +4595,8 @@ packages: eslint-plugin-import-x: optional: true - eslint-mdx@3.5.0: - resolution: {integrity: sha512-3iFgW201z26bnFJelrrG2D8YXx1jk9JzXBp2pN32EMIpg47ZBM20mkdneLXn2CBKp27ZMHTygEA1DJNpqMu4Pg==} + eslint-mdx@3.6.2: + resolution: {integrity: sha512-5hczn5iSSEcwtNtVXFwCKIk6iLEDaZpwc3vjYDl/B779OzaAAK/ou16J2xVdO6ecOLEO1WZqp7MRCQ/WsKDUig==} engines: {node: '>=18.0.0'} peerDependencies: eslint: '>=8.0.0' @@ -4637,8 +4642,8 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - eslint-plugin-mdx@3.5.0: - resolution: {integrity: sha512-pxXH/a2eH3Pxkmp1LSTqFfizIF1ZEUJjEm99gy+k/c+rK+SITEHg04LbPZBqG0T3Z4x0tPtY7zm9miqypcPxuw==} + eslint-plugin-mdx@3.6.2: + resolution: {integrity: sha512-RfMd5HYD/9+cqANhVWJbuBRg3huWUsAoGJNGmPsyiRD2X6BaG6bvt1omyk1ORlg81GK8ST7Ojt5fNAuwWhWU8A==} engines: {node: '>=18.0.0'} peerDependencies: eslint: '>=8.0.0' @@ -4770,8 +4775,8 @@ packages: resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==} engines: {node: '>=6'} - expect-type@1.2.1: - resolution: {integrity: sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==} + expect-type@1.2.2: + resolution: {integrity: sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==} engines: {node: '>=12.0.0'} exsolve@1.0.7: @@ -4896,8 +4901,8 @@ packages: fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - framer-motion@12.19.1: - resolution: {integrity: sha512-nq9hwWAEKf4gzprbOZzKugLV5OVKF7zrNDY6UOVu+4D3ZgIkg8L9Jy6AMrpBM06fhbKJ6LEG6UY5+t7Eq6wNlg==} + framer-motion@12.23.1: + resolution: {integrity: sha512-7P1t2DnKEUXvPxVZJu9Hd4gfdoUF6z9U3w3/MUXCVFNHiFV+iSoboqeK4/ZCCpa49/ZiVEWfaaYCPscqPPsOVQ==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 || ^19.0.0 @@ -5000,10 +5005,6 @@ packages: engines: {node: '>=12'} deprecated: Glob versions prior to v9 are no longer supported - globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - globals@13.24.0: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} @@ -5786,8 +5787,8 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - mermaid@11.7.0: - resolution: {integrity: sha512-/1/5R0rt0Z1Ak0CuznAnCF3HtQgayRXUz6SguzOwN4L+DuCobz0UxnQ+ZdTSZ3AugKVVh78tiVmsHpHWV25TCw==} + mermaid@11.8.1: + resolution: {integrity: sha512-VSXJLqP1Sqw5sGr273mhvpPRhXwE6NlmMSqBZQw+yZJoAJkOIPPn/uT3teeCBx60Fkt5zEI3FrH2eVT0jXRDzw==} mhchemparser@4.2.1: resolution: {integrity: sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ==} @@ -5970,8 +5971,8 @@ packages: mitt@3.0.1: resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} - mixpanel-browser@2.65.0: - resolution: {integrity: sha512-BtrVYqilloAqx3TIhoIpNikHznTocEy/z3QIf6WEiz4PFxrgI6LgSMFIVKqLqGZJ8svrPlHbpp/CJp5wQYUZWw==} + mixpanel-browser@2.66.0: + resolution: {integrity: sha512-n02abeEhQCNHnpQlYTYx8EzcZGpNXvmw8ozgbFiTbthMRY65aPXuRat5hCiZXllZ+UY31awszFx/LpryPwie0A==} mj-context-menu@0.6.1: resolution: {integrity: sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA==} @@ -5992,14 +5993,14 @@ packages: engines: {node: '>= 14.0.0'} hasBin: true - motion-dom@12.19.0: - resolution: {integrity: sha512-m96uqq8VbwxFLU0mtmlsIVe8NGGSdpBvBSHbnnOJQxniPaabvVdGgxSamhuDwBsRhwX7xPxdICgVJlOpzn/5bw==} + motion-dom@12.23.1: + resolution: {integrity: sha512-kcMDS8yhUZgO7iu3FB0UYZpHUymZlj4aoEqH0Vf0k3JtZA0xfYIrmbDlKn6X7+INXV3hDAIBUf4aT5jEUHvvWQ==} - motion-utils@12.19.0: - resolution: {integrity: sha512-BuFTHINYmV07pdWs6lj6aI63vr2N4dg0vR+td0rtrdpWOhBzIkEklZyLcvKBoEtwSqx8Jg06vUB5RS0xDiUybw==} + motion-utils@12.23.1: + resolution: {integrity: sha512-coqLmHUTBA1KyBNEO64sTCWlduDV5Q6Yv0szjxnHVzZmcFYpVowyP6S38iOUlhocannaCCHlZ06lyLWQe/jheQ==} - motion@12.19.1: - resolution: {integrity: sha512-OhoHWrht+zwDPccr2wGltJdwgz2elFBBt/sLei2g0hwICvy2hOBFUkA4Ylup3VnDgz+vUtecf694EV7bJK4XjA==} + motion@12.23.1: + resolution: {integrity: sha512-VuvoiZp6inGTYXzle/EXxCxFDgd0hlplRH2pcF7OIFXvbojpSDrYQVQShOScGYru9jKlavjDq1E9owm/p3ARtQ==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 || ^19.0.0 @@ -6031,8 +6032,8 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - napi-postinstall@0.2.4: - resolution: {integrity: sha512-ZEzHJwBhZ8qQSbknHqYcdtQVr8zUgGyM/q6h6qAyhtyVMNrSgDhrC4disf03dYW0e+czXyLnZINnCTEkWy0eJg==} + napi-postinstall@0.3.0: + resolution: {integrity: sha512-M7NqKyhODKV1gRLdkwE7pDsZP2/SC2a2vHkOYh9MCpKMbWVfyVfUw5MaH83Fv6XMjxr5jryUp3IDDL9rlxsTeA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} hasBin: true @@ -6338,8 +6339,8 @@ packages: pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - pathval@2.0.0: - resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + pathval@2.0.1: + resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} engines: {node: '>= 14.16'} picocolors@1.1.1: @@ -6368,8 +6369,8 @@ packages: pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - pkg-types@2.1.0: - resolution: {integrity: sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==} + pkg-types@2.2.0: + resolution: {integrity: sha512-2SM/GZGAEkPp3KWORxQZns4M+WSeXbC2HEvmOIJe3Cmiv6ieAJvdVhDldtHqM5J1Y7MrR1XhkBT/rMlhh9FdqQ==} pluralize@8.0.0: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} @@ -6460,11 +6461,13 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier-plugin-tailwindcss@0.6.13: - resolution: {integrity: sha512-uQ0asli1+ic8xrrSmIOaElDu0FacR4x69GynTh2oZjFY10JUt6EEumTQl5tB4fMeD6I1naKd+4rXQQ7esT2i1g==} + prettier-plugin-tailwindcss@0.6.14: + resolution: {integrity: sha512-pi2e/+ZygeIqntN+vC573BcW5Cve8zUB0SSAGxqpB4f96boZF4M3phPVoOFCeypwkpRYdi7+jQ5YJJUwrkGUAg==} engines: {node: '>=14.21.3'} peerDependencies: '@ianvs/prettier-plugin-sort-imports': '*' + '@prettier/plugin-hermes': '*' + '@prettier/plugin-oxc': '*' '@prettier/plugin-pug': '*' '@shopify/prettier-plugin-liquid': '*' '@trivago/prettier-plugin-sort-imports': '*' @@ -6484,6 +6487,10 @@ packages: peerDependenciesMeta: '@ianvs/prettier-plugin-sort-imports': optional: true + '@prettier/plugin-hermes': + optional: true + '@prettier/plugin-oxc': + optional: true '@prettier/plugin-pug': optional: true '@shopify/prettier-plugin-liquid': @@ -6520,8 +6527,8 @@ packages: engines: {node: '>=10.13.0'} hasBin: true - prettier@3.6.1: - resolution: {integrity: sha512-5xGWRa90Sp2+x1dQtNpIpeOQpTDBs9cZDmA/qs2vDNN2i18PdapqY7CmBeyLlMuGqXJRIOPaCaVZTLNQRWUH/A==} + prettier@3.6.2: + resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==} engines: {node: '>=14'} hasBin: true @@ -6904,8 +6911,8 @@ packages: rollup-pluginutils@2.8.2: resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} - rollup@4.44.0: - resolution: {integrity: sha512-qHcdEzLCiktQIfwBq420pn2dP+30uzqYxv9ETm91wdt2R9AFcWfjNAmje4NWlnCIQ5RMTzVf0ZyisOKqHR6RwA==} + rollup@4.44.2: + resolution: {integrity: sha512-PVoapzTwSEcelaWGth3uR66u7ZRo6qhPHc0f2uRO9fX6XDVNrIiGYS0Pj9+R8yIIYSD/mCx2b16Ws9itljKSPg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -7654,8 +7661,8 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - unrs-resolver@1.9.1: - resolution: {integrity: sha512-4AZVxP05JGN6DwqIkSP4VKLOcwQa5l37SWHF/ahcuqBMbfxbpN1L1QKafEhWCziHhzKex9H/AR09H0OuVyU+9g==} + unrs-resolver@1.11.1: + resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} update-browserslist-db@1.1.3: resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} @@ -7747,8 +7754,8 @@ packages: victory-vendor@36.9.2: resolution: {integrity: sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==} - viem@2.31.4: - resolution: {integrity: sha512-0UZ/asvzl6p44CIBRDbwEcn3HXIQQurBZcMo5qmLhQ8s27Ockk+RYohgTLlpLvkYs8/t4UUEREAbHLuek1kXcw==} + viem@2.31.7: + resolution: {integrity: sha512-mpB8Hp6xK77E/b/yJmpAIQcxcOfpbrwWNItjnXaIA8lxZYt4JS433Pge2gg6Hp3PwyFtaUMh01j5L8EXnLTjQQ==} peerDependencies: typescript: '>=5.0.4' peerDependenciesMeta: @@ -7927,8 +7934,8 @@ packages: workerpool@6.5.1: resolution: {integrity: sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==} - wrangler@3.114.10: - resolution: {integrity: sha512-UMs4bSH+P47oXvXqgziRqD8UOT8KBF6D/4O0bB9Kyh9QrT1FGpG2p4rV4FtbKFOchDrXQozbthScND+vLc8gqw==} + wrangler@3.114.11: + resolution: {integrity: sha512-g0KhNj0AzlDXrW/XNzOrbfjBnDHbmf3a+3+UR67BbKnS8EUC9yTPrKCRymERdFKfiSvlPs34tHGAzOTw62Jb4g==} engines: {node: '>=16.17.0'} hasBin: true peerDependencies: @@ -7984,6 +7991,18 @@ packages: utf-8-validate: optional: true + ws@8.18.3: + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + xml-name-validator@5.0.0: resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} engines: {node: '>=18'} @@ -8033,12 +8052,6 @@ packages: youch@3.3.4: resolution: {integrity: sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg==} - zod-validation-error@3.4.0: - resolution: {integrity: sha512-ZOPR9SVY6Pb2qqO5XHt+MkkTRxGXb4EVtnjc9JpXUOtUB1T9Ru7mZOT361AN3MsetVe7R0a1KZshJDZdgp9miQ==} - engines: {node: '>=18.0.0'} - peerDependencies: - zod: ^3.18.0 - zod-validation-error@3.5.2: resolution: {integrity: sha512-mdi7YOLtram5dzJ5aDtm1AG9+mxRma1iaMrZdYIpFO7epdKBUwLHIxTF8CPDeCQ828zAXYtizrKlEJAtzgfgrw==} engines: {node: '>=18.0.0'} @@ -8048,11 +8061,11 @@ packages: zod@3.22.3: resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==} - zod@3.23.8: - resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + zod@3.25.58: + resolution: {integrity: sha512-DVLmMQzSZwNYzQoMaM3MQWnxr2eq+AtM9Hx3w1/Yl0pH8sLTSjN4jGP7w6f7uand6Hw44tsnSu1hz1AOA6qI2Q==} - zod@3.25.67: - resolution: {integrity: sha512-idA2YXwpCdqUSKRCACDE6ItZD9TZzy3OZMtpfLoh6oPR47lipysRrJfjzMqFxQ3uJuUPyUeWe1r9vLH33xO/Qw==} + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -8063,110 +8076,110 @@ snapshots: '@adraffy/ens-normalize@1.11.0': {} - '@algolia/autocomplete-core@1.17.9(@algolia/client-search@5.29.0)(algoliasearch@5.29.0)(search-insights@2.17.3)': + '@algolia/autocomplete-core@1.17.9(@algolia/client-search@5.32.0)(algoliasearch@5.32.0)(search-insights@2.17.3)': dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.17.9(@algolia/client-search@5.29.0)(algoliasearch@5.29.0)(search-insights@2.17.3) - '@algolia/autocomplete-shared': 1.17.9(@algolia/client-search@5.29.0)(algoliasearch@5.29.0) + '@algolia/autocomplete-plugin-algolia-insights': 1.17.9(@algolia/client-search@5.32.0)(algoliasearch@5.32.0)(search-insights@2.17.3) + '@algolia/autocomplete-shared': 1.17.9(@algolia/client-search@5.32.0)(algoliasearch@5.32.0) transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - search-insights - '@algolia/autocomplete-plugin-algolia-insights@1.17.9(@algolia/client-search@5.29.0)(algoliasearch@5.29.0)(search-insights@2.17.3)': + '@algolia/autocomplete-plugin-algolia-insights@1.17.9(@algolia/client-search@5.32.0)(algoliasearch@5.32.0)(search-insights@2.17.3)': dependencies: - '@algolia/autocomplete-shared': 1.17.9(@algolia/client-search@5.29.0)(algoliasearch@5.29.0) + '@algolia/autocomplete-shared': 1.17.9(@algolia/client-search@5.32.0)(algoliasearch@5.32.0) search-insights: 2.17.3 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - '@algolia/autocomplete-preset-algolia@1.17.9(@algolia/client-search@5.29.0)(algoliasearch@5.29.0)': + '@algolia/autocomplete-preset-algolia@1.17.9(@algolia/client-search@5.32.0)(algoliasearch@5.32.0)': dependencies: - '@algolia/autocomplete-shared': 1.17.9(@algolia/client-search@5.29.0)(algoliasearch@5.29.0) - '@algolia/client-search': 5.29.0 - algoliasearch: 5.29.0 + '@algolia/autocomplete-shared': 1.17.9(@algolia/client-search@5.32.0)(algoliasearch@5.32.0) + '@algolia/client-search': 5.32.0 + algoliasearch: 5.32.0 - '@algolia/autocomplete-shared@1.17.9(@algolia/client-search@5.29.0)(algoliasearch@5.29.0)': + '@algolia/autocomplete-shared@1.17.9(@algolia/client-search@5.32.0)(algoliasearch@5.32.0)': dependencies: - '@algolia/client-search': 5.29.0 - algoliasearch: 5.29.0 + '@algolia/client-search': 5.32.0 + algoliasearch: 5.32.0 - '@algolia/client-abtesting@5.29.0': + '@algolia/client-abtesting@5.32.0': dependencies: - '@algolia/client-common': 5.29.0 - '@algolia/requester-browser-xhr': 5.29.0 - '@algolia/requester-fetch': 5.29.0 - '@algolia/requester-node-http': 5.29.0 + '@algolia/client-common': 5.32.0 + '@algolia/requester-browser-xhr': 5.32.0 + '@algolia/requester-fetch': 5.32.0 + '@algolia/requester-node-http': 5.32.0 - '@algolia/client-analytics@5.29.0': + '@algolia/client-analytics@5.32.0': dependencies: - '@algolia/client-common': 5.29.0 - '@algolia/requester-browser-xhr': 5.29.0 - '@algolia/requester-fetch': 5.29.0 - '@algolia/requester-node-http': 5.29.0 + '@algolia/client-common': 5.32.0 + '@algolia/requester-browser-xhr': 5.32.0 + '@algolia/requester-fetch': 5.32.0 + '@algolia/requester-node-http': 5.32.0 - '@algolia/client-common@5.29.0': {} + '@algolia/client-common@5.32.0': {} - '@algolia/client-insights@5.29.0': + '@algolia/client-insights@5.32.0': dependencies: - '@algolia/client-common': 5.29.0 - '@algolia/requester-browser-xhr': 5.29.0 - '@algolia/requester-fetch': 5.29.0 - '@algolia/requester-node-http': 5.29.0 + '@algolia/client-common': 5.32.0 + '@algolia/requester-browser-xhr': 5.32.0 + '@algolia/requester-fetch': 5.32.0 + '@algolia/requester-node-http': 5.32.0 - '@algolia/client-personalization@5.29.0': + '@algolia/client-personalization@5.32.0': dependencies: - '@algolia/client-common': 5.29.0 - '@algolia/requester-browser-xhr': 5.29.0 - '@algolia/requester-fetch': 5.29.0 - '@algolia/requester-node-http': 5.29.0 + '@algolia/client-common': 5.32.0 + '@algolia/requester-browser-xhr': 5.32.0 + '@algolia/requester-fetch': 5.32.0 + '@algolia/requester-node-http': 5.32.0 - '@algolia/client-query-suggestions@5.29.0': + '@algolia/client-query-suggestions@5.32.0': dependencies: - '@algolia/client-common': 5.29.0 - '@algolia/requester-browser-xhr': 5.29.0 - '@algolia/requester-fetch': 5.29.0 - '@algolia/requester-node-http': 5.29.0 + '@algolia/client-common': 5.32.0 + '@algolia/requester-browser-xhr': 5.32.0 + '@algolia/requester-fetch': 5.32.0 + '@algolia/requester-node-http': 5.32.0 - '@algolia/client-search@5.29.0': + '@algolia/client-search@5.32.0': dependencies: - '@algolia/client-common': 5.29.0 - '@algolia/requester-browser-xhr': 5.29.0 - '@algolia/requester-fetch': 5.29.0 - '@algolia/requester-node-http': 5.29.0 + '@algolia/client-common': 5.32.0 + '@algolia/requester-browser-xhr': 5.32.0 + '@algolia/requester-fetch': 5.32.0 + '@algolia/requester-node-http': 5.32.0 - '@algolia/ingestion@1.29.0': + '@algolia/ingestion@1.32.0': dependencies: - '@algolia/client-common': 5.29.0 - '@algolia/requester-browser-xhr': 5.29.0 - '@algolia/requester-fetch': 5.29.0 - '@algolia/requester-node-http': 5.29.0 + '@algolia/client-common': 5.32.0 + '@algolia/requester-browser-xhr': 5.32.0 + '@algolia/requester-fetch': 5.32.0 + '@algolia/requester-node-http': 5.32.0 - '@algolia/monitoring@1.29.0': + '@algolia/monitoring@1.32.0': dependencies: - '@algolia/client-common': 5.29.0 - '@algolia/requester-browser-xhr': 5.29.0 - '@algolia/requester-fetch': 5.29.0 - '@algolia/requester-node-http': 5.29.0 + '@algolia/client-common': 5.32.0 + '@algolia/requester-browser-xhr': 5.32.0 + '@algolia/requester-fetch': 5.32.0 + '@algolia/requester-node-http': 5.32.0 - '@algolia/recommend@5.29.0': + '@algolia/recommend@5.32.0': dependencies: - '@algolia/client-common': 5.29.0 - '@algolia/requester-browser-xhr': 5.29.0 - '@algolia/requester-fetch': 5.29.0 - '@algolia/requester-node-http': 5.29.0 + '@algolia/client-common': 5.32.0 + '@algolia/requester-browser-xhr': 5.32.0 + '@algolia/requester-fetch': 5.32.0 + '@algolia/requester-node-http': 5.32.0 - '@algolia/requester-browser-xhr@5.29.0': + '@algolia/requester-browser-xhr@5.32.0': dependencies: - '@algolia/client-common': 5.29.0 + '@algolia/client-common': 5.32.0 - '@algolia/requester-fetch@5.29.0': + '@algolia/requester-fetch@5.32.0': dependencies: - '@algolia/client-common': 5.29.0 + '@algolia/client-common': 5.32.0 - '@algolia/requester-node-http@5.29.0': + '@algolia/requester-node-http@5.32.0': dependencies: - '@algolia/client-common': 5.29.0 + '@algolia/client-common': 5.32.0 '@alloc/quick-lru@5.2.0': {} @@ -8196,18 +8209,20 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/generator@7.27.5': + '@babel/generator@7.28.0': dependencies: - '@babel/parser': 7.27.5 - '@babel/types': 7.27.6 - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 + '@babel/parser': 7.28.0 + '@babel/types': 7.28.0 + '@jridgewell/gen-mapping': 0.3.12 + '@jridgewell/trace-mapping': 0.3.29 jsesc: 3.1.0 + '@babel/helper-globals@7.28.0': {} + '@babel/helper-module-imports@7.27.1': dependencies: - '@babel/traverse': 7.27.4 - '@babel/types': 7.27.6 + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.0 transitivePeerDependencies: - supports-color @@ -8215,31 +8230,31 @@ snapshots: '@babel/helper-validator-identifier@7.27.1': {} - '@babel/parser@7.27.5': + '@babel/parser@7.28.0': dependencies: - '@babel/types': 7.27.6 + '@babel/types': 7.28.0 '@babel/runtime@7.27.6': {} '@babel/template@7.27.2': dependencies: '@babel/code-frame': 7.27.1 - '@babel/parser': 7.27.5 - '@babel/types': 7.27.6 + '@babel/parser': 7.28.0 + '@babel/types': 7.28.0 - '@babel/traverse@7.27.4': + '@babel/traverse@7.28.0': dependencies: '@babel/code-frame': 7.27.1 - '@babel/generator': 7.27.5 - '@babel/parser': 7.27.5 + '@babel/generator': 7.28.0 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.28.0 '@babel/template': 7.27.2 - '@babel/types': 7.27.6 + '@babel/types': 7.28.0 debug: 4.4.1(supports-color@8.1.1) - globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.27.6': + '@babel/types@7.28.0': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 @@ -8247,8 +8262,8 @@ snapshots: '@base-ui-components/react@1.0.0-alpha.7(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.27.6 - '@floating-ui/react': 0.27.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@floating-ui/utils': 0.2.9 + '@floating-ui/react': 0.27.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@floating-ui/utils': 0.2.10 '@react-aria/overlays': 3.27.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) prop-types: 15.8.1 react: 18.3.1 @@ -8303,7 +8318,7 @@ snapshots: '@cloudflare/workerd-windows-64@1.20250408.0': optional: true - '@cloudflare/workers-types@4.20250620.0': {} + '@cloudflare/workers-types@4.20250710.0': {} '@corex/deepmerge@4.0.43': {} @@ -8333,12 +8348,12 @@ snapshots: '@docsearch/css@3.9.0': {} - '@docsearch/react@3.9.0(@algolia/client-search@5.29.0)(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)': + '@docsearch/react@3.9.0(@algolia/client-search@5.32.0)(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)': dependencies: - '@algolia/autocomplete-core': 1.17.9(@algolia/client-search@5.29.0)(algoliasearch@5.29.0)(search-insights@2.17.3) - '@algolia/autocomplete-preset-algolia': 1.17.9(@algolia/client-search@5.29.0)(algoliasearch@5.29.0) + '@algolia/autocomplete-core': 1.17.9(@algolia/client-search@5.32.0)(algoliasearch@5.32.0)(search-insights@2.17.3) + '@algolia/autocomplete-preset-algolia': 1.17.9(@algolia/client-search@5.32.0)(algoliasearch@5.32.0) '@docsearch/css': 3.9.0 - algoliasearch: 5.29.0 + algoliasearch: 5.32.0 optionalDependencies: '@types/react': 18.3.23 react: 18.3.1 @@ -8356,7 +8371,7 @@ snapshots: '@uniswap/v3-sdk': 3.25.2(hardhat@2.25.0(typescript@5.8.3)) dataloader: 2.2.3 dayjs: 1.11.13 - decimal.js: 10.5.0 + decimal.js: 10.6.0 ethers: 5.8.0 graphql: 16.11.0 graphql-tag: 2.12.6(graphql@16.11.0) @@ -8367,13 +8382,13 @@ snapshots: - hardhat - utf-8-validate - '@edgeandnode/ens@2.3.0(typescript@5.8.3)(viem@2.31.4(typescript@5.8.3)(zod@3.25.67))': + '@edgeandnode/ens@2.3.0(typescript@5.8.3)(viem@2.31.7(typescript@5.8.3)(zod@3.25.76))': dependencies: - '@ensdomains/ensjs': 4.0.2(typescript@5.8.3)(viem@2.31.4(typescript@5.8.3)(zod@3.25.67))(zod@3.25.67) + '@ensdomains/ensjs': 4.0.2(typescript@5.8.3)(viem@2.31.7(typescript@5.8.3)(zod@3.25.76))(zod@3.25.76) graphql: 16.11.0 graphql-request: 7.2.0(graphql@16.11.0) - viem: 2.31.4(typescript@5.8.3)(zod@3.25.67) - zod: 3.25.67 + viem: 2.31.7(typescript@5.8.3)(zod@3.25.76) + zod: 3.25.76 transitivePeerDependencies: - encoding - typescript @@ -8382,7 +8397,7 @@ snapshots: dependencies: '@hasparus/eslint-plugin': 1.0.0 '@next/eslint-plugin-next': 13.4.9 - '@rushstack/eslint-patch': 1.11.0 + '@rushstack/eslint-patch': 1.12.0 '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.8.3) eslint: 8.57.1 @@ -8401,14 +8416,14 @@ snapshots: - eslint-plugin-import-x - supports-color - '@edgeandnode/gds@6.6.2(@emotion/is-prop-valid@0.8.8)(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(@theme-ui/core@0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(react@18.3.1))(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(dayjs@1.11.13)(hardhat@2.25.0(typescript@5.8.3))(next@14.2.30(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(theme-ui@0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(react@18.3.1))(typescript@5.8.3)': + '@edgeandnode/gds@6.7.0(@emotion/is-prop-valid@0.8.8)(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(@theme-ui/core@0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(react@18.3.1))(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(dayjs@1.11.13)(hardhat@2.25.0(typescript@5.8.3))(next@14.2.30(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(theme-ui@0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(react@18.3.1))(typescript@5.8.3)': dependencies: '@base-ui-components/react': 1.0.0-alpha.7(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@bramus/style-observer': 2.0.2 '@edgeandnode/common': 7.0.4(hardhat@2.25.0(typescript@5.8.3)) '@emotion/react': 11.14.0(@types/react@18.3.23)(react@18.3.1) - '@figma/code-connect': 1.3.3 - '@floating-ui/react-dom': 2.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@figma/code-connect': 1.3.4 + '@floating-ui/react-dom': 2.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@headlessui/react': 2.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@phosphor-icons/react': 2.1.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-accordion': 1.2.11(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -8429,7 +8444,7 @@ snapshots: '@tanem/react-nprogress': 5.0.55(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@theme-ui/css': 0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1)) '@theme-ui/match-media': 0.17.2(@theme-ui/core@0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(react@18.3.1))(@theme-ui/css@0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1)))(react@18.3.1) - '@web3icons/react': 4.0.16(react@18.3.1)(typescript@5.8.3) + '@web3icons/react': 4.0.17(react@18.3.1)(typescript@5.8.3) '@xstate/react': 3.2.2(@types/react@18.3.23)(react@18.3.1)(xstate@4.38.3) color: 5.0.0 dayjs: 1.11.13 @@ -8437,7 +8452,7 @@ snapshots: ethers: 5.8.0 lodash: 4.17.21 md5: 2.3.0 - motion: 12.19.1(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + motion: 12.23.1(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) numeral: 2.0.6 prism-react-renderer: 2.4.1(react@18.3.1) prismjs: 1.30.0 @@ -8476,11 +8491,11 @@ snapshots: - typescript - utf-8-validate - '@edgeandnode/go@10.2.3(f31233e6aec53dd14ecd91b56887af79)': + '@edgeandnode/go@10.3.0(df7a60f2b2bbf39644b6c2833d03ec2d)': dependencies: '@edgeandnode/common': 7.0.4(hardhat@2.25.0(typescript@5.8.3)) - '@edgeandnode/ens': 2.3.0(typescript@5.8.3)(viem@2.31.4(typescript@5.8.3)(zod@3.25.67)) - '@edgeandnode/gds': 6.6.2(@emotion/is-prop-valid@0.8.8)(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(@theme-ui/core@0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(react@18.3.1))(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(dayjs@1.11.13)(hardhat@2.25.0(typescript@5.8.3))(next@14.2.30(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(theme-ui@0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(react@18.3.1))(typescript@5.8.3) + '@edgeandnode/ens': 2.3.0(typescript@5.8.3)(viem@2.31.7(typescript@5.8.3)(zod@3.25.76)) + '@edgeandnode/gds': 6.7.0(@emotion/is-prop-valid@0.8.8)(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(@theme-ui/core@0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(react@18.3.1))(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(dayjs@1.11.13)(hardhat@2.25.0(typescript@5.8.3))(next@14.2.30(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(theme-ui@0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1))(react@18.3.1))(typescript@5.8.3) '@emotion/react': 11.14.0(@types/react@18.3.23)(react@18.3.1) '@graphql-typed-document-node/core': 3.2.0(graphql@16.11.0) '@radix-ui/react-collapsible': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -8488,13 +8503,13 @@ snapshots: '@radix-ui/react-navigation-menu': 1.2.13(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@tanstack/react-query': 5.81.2(react@18.3.1) + '@tanstack/react-query': 5.82.0(react@18.3.1) '@theme-ui/css': 0.17.2(@emotion/react@11.14.0(@types/react@18.3.23)(react@18.3.1)) - '@web3icons/react': 4.0.16(react@18.3.1)(typescript@5.8.3) + '@web3icons/react': 4.0.17(react@18.3.1)(typescript@5.8.3) escape-string-regexp: 5.0.0 graphql: 16.11.0 graphql-request: 7.2.0(graphql@16.11.0) - motion: 12.19.1(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + motion: 12.23.1(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) tailwindcss: 3.4.17 @@ -8508,18 +8523,18 @@ snapshots: - ts-node - typescript - '@emnapi/core@1.4.3': + '@emnapi/core@1.4.4': dependencies: - '@emnapi/wasi-threads': 1.0.2 + '@emnapi/wasi-threads': 1.0.3 tslib: 2.8.1 optional: true - '@emnapi/runtime@1.4.3': + '@emnapi/runtime@1.4.4': dependencies: tslib: 2.8.1 optional: true - '@emnapi/wasi-threads@1.0.2': + '@emnapi/wasi-threads@1.0.3': dependencies: tslib: 2.8.1 optional: true @@ -8620,19 +8635,19 @@ snapshots: dns-packet: 5.6.1 typescript-logging: 1.0.1 - '@ensdomains/ensjs@4.0.2(typescript@5.8.3)(viem@2.31.4(typescript@5.8.3)(zod@3.25.67))(zod@3.25.67)': + '@ensdomains/ensjs@4.0.2(typescript@5.8.3)(viem@2.31.7(typescript@5.8.3)(zod@3.25.76))(zod@3.25.76)': dependencies: '@adraffy/ens-normalize': 1.10.1 '@ensdomains/address-encoder': 1.1.1 '@ensdomains/content-hash': 3.1.0-rc.1 '@ensdomains/dnsprovejs': 0.5.1 - abitype: 1.0.8(typescript@5.8.3)(zod@3.25.67) + abitype: 1.0.8(typescript@5.8.3)(zod@3.25.76) dns-packet: 5.6.1 graphql: 16.11.0 graphql-request: 6.1.0(graphql@16.11.0) pako: 2.1.0 ts-pattern: 5.7.1 - viem: 2.31.4(typescript@5.8.3)(zod@3.25.67) + viem: 2.31.7(typescript@5.8.3)(zod@3.25.76) transitivePeerDependencies: - encoding - typescript @@ -8651,7 +8666,7 @@ snapshots: '@esbuild/aix-ppc64@0.21.5': optional: true - '@esbuild/aix-ppc64@0.25.5': + '@esbuild/aix-ppc64@0.25.6': optional: true '@esbuild/android-arm64@0.17.19': @@ -8660,7 +8675,7 @@ snapshots: '@esbuild/android-arm64@0.21.5': optional: true - '@esbuild/android-arm64@0.25.5': + '@esbuild/android-arm64@0.25.6': optional: true '@esbuild/android-arm@0.17.19': @@ -8669,7 +8684,7 @@ snapshots: '@esbuild/android-arm@0.21.5': optional: true - '@esbuild/android-arm@0.25.5': + '@esbuild/android-arm@0.25.6': optional: true '@esbuild/android-x64@0.17.19': @@ -8678,7 +8693,7 @@ snapshots: '@esbuild/android-x64@0.21.5': optional: true - '@esbuild/android-x64@0.25.5': + '@esbuild/android-x64@0.25.6': optional: true '@esbuild/darwin-arm64@0.17.19': @@ -8687,7 +8702,7 @@ snapshots: '@esbuild/darwin-arm64@0.21.5': optional: true - '@esbuild/darwin-arm64@0.25.5': + '@esbuild/darwin-arm64@0.25.6': optional: true '@esbuild/darwin-x64@0.17.19': @@ -8696,7 +8711,7 @@ snapshots: '@esbuild/darwin-x64@0.21.5': optional: true - '@esbuild/darwin-x64@0.25.5': + '@esbuild/darwin-x64@0.25.6': optional: true '@esbuild/freebsd-arm64@0.17.19': @@ -8705,7 +8720,7 @@ snapshots: '@esbuild/freebsd-arm64@0.21.5': optional: true - '@esbuild/freebsd-arm64@0.25.5': + '@esbuild/freebsd-arm64@0.25.6': optional: true '@esbuild/freebsd-x64@0.17.19': @@ -8714,7 +8729,7 @@ snapshots: '@esbuild/freebsd-x64@0.21.5': optional: true - '@esbuild/freebsd-x64@0.25.5': + '@esbuild/freebsd-x64@0.25.6': optional: true '@esbuild/linux-arm64@0.17.19': @@ -8723,7 +8738,7 @@ snapshots: '@esbuild/linux-arm64@0.21.5': optional: true - '@esbuild/linux-arm64@0.25.5': + '@esbuild/linux-arm64@0.25.6': optional: true '@esbuild/linux-arm@0.17.19': @@ -8732,7 +8747,7 @@ snapshots: '@esbuild/linux-arm@0.21.5': optional: true - '@esbuild/linux-arm@0.25.5': + '@esbuild/linux-arm@0.25.6': optional: true '@esbuild/linux-ia32@0.17.19': @@ -8741,7 +8756,7 @@ snapshots: '@esbuild/linux-ia32@0.21.5': optional: true - '@esbuild/linux-ia32@0.25.5': + '@esbuild/linux-ia32@0.25.6': optional: true '@esbuild/linux-loong64@0.17.19': @@ -8750,7 +8765,7 @@ snapshots: '@esbuild/linux-loong64@0.21.5': optional: true - '@esbuild/linux-loong64@0.25.5': + '@esbuild/linux-loong64@0.25.6': optional: true '@esbuild/linux-mips64el@0.17.19': @@ -8759,7 +8774,7 @@ snapshots: '@esbuild/linux-mips64el@0.21.5': optional: true - '@esbuild/linux-mips64el@0.25.5': + '@esbuild/linux-mips64el@0.25.6': optional: true '@esbuild/linux-ppc64@0.17.19': @@ -8768,7 +8783,7 @@ snapshots: '@esbuild/linux-ppc64@0.21.5': optional: true - '@esbuild/linux-ppc64@0.25.5': + '@esbuild/linux-ppc64@0.25.6': optional: true '@esbuild/linux-riscv64@0.17.19': @@ -8777,7 +8792,7 @@ snapshots: '@esbuild/linux-riscv64@0.21.5': optional: true - '@esbuild/linux-riscv64@0.25.5': + '@esbuild/linux-riscv64@0.25.6': optional: true '@esbuild/linux-s390x@0.17.19': @@ -8786,7 +8801,7 @@ snapshots: '@esbuild/linux-s390x@0.21.5': optional: true - '@esbuild/linux-s390x@0.25.5': + '@esbuild/linux-s390x@0.25.6': optional: true '@esbuild/linux-x64@0.17.19': @@ -8795,10 +8810,10 @@ snapshots: '@esbuild/linux-x64@0.21.5': optional: true - '@esbuild/linux-x64@0.25.5': + '@esbuild/linux-x64@0.25.6': optional: true - '@esbuild/netbsd-arm64@0.25.5': + '@esbuild/netbsd-arm64@0.25.6': optional: true '@esbuild/netbsd-x64@0.17.19': @@ -8807,10 +8822,10 @@ snapshots: '@esbuild/netbsd-x64@0.21.5': optional: true - '@esbuild/netbsd-x64@0.25.5': + '@esbuild/netbsd-x64@0.25.6': optional: true - '@esbuild/openbsd-arm64@0.25.5': + '@esbuild/openbsd-arm64@0.25.6': optional: true '@esbuild/openbsd-x64@0.17.19': @@ -8819,7 +8834,10 @@ snapshots: '@esbuild/openbsd-x64@0.21.5': optional: true - '@esbuild/openbsd-x64@0.25.5': + '@esbuild/openbsd-x64@0.25.6': + optional: true + + '@esbuild/openharmony-arm64@0.25.6': optional: true '@esbuild/sunos-x64@0.17.19': @@ -8828,7 +8846,7 @@ snapshots: '@esbuild/sunos-x64@0.21.5': optional: true - '@esbuild/sunos-x64@0.25.5': + '@esbuild/sunos-x64@0.25.6': optional: true '@esbuild/win32-arm64@0.17.19': @@ -8837,7 +8855,7 @@ snapshots: '@esbuild/win32-arm64@0.21.5': optional: true - '@esbuild/win32-arm64@0.25.5': + '@esbuild/win32-arm64@0.25.6': optional: true '@esbuild/win32-ia32@0.17.19': @@ -8846,7 +8864,7 @@ snapshots: '@esbuild/win32-ia32@0.21.5': optional: true - '@esbuild/win32-ia32@0.25.5': + '@esbuild/win32-ia32@0.25.6': optional: true '@esbuild/win32-x64@0.17.19': @@ -8855,7 +8873,7 @@ snapshots: '@esbuild/win32-x64@0.21.5': optional: true - '@esbuild/win32-x64@0.25.5': + '@esbuild/win32-x64@0.25.6': optional: true '@eslint-community/eslint-utils@4.7.0(eslint@8.57.1)': @@ -9156,14 +9174,14 @@ snapshots: '@fastify/busboy@2.1.1': {} - '@figma/code-connect@1.3.3': + '@figma/code-connect@1.3.4': dependencies: boxen: 5.1.1 chalk: 4.1.2 commander: 11.1.0 compare-versions: 6.1.1 cross-spawn: 7.0.6 - dotenv: 16.5.0 + dotenv: 16.6.1 fast-fuzzy: 1.12.0 find-up: 5.0.0 glob: 10.4.5 @@ -9178,52 +9196,52 @@ snapshots: ts-morph: 23.0.0 typescript: 5.5.4 undici: 5.29.0 - zod: 3.23.8 - zod-validation-error: 3.4.0(zod@3.23.8) + zod: 3.25.58 + zod-validation-error: 3.5.2(zod@3.25.58) transitivePeerDependencies: - bufferutil - canvas - supports-color - utf-8-validate - '@floating-ui/core@1.7.1': + '@floating-ui/core@1.7.2': dependencies: - '@floating-ui/utils': 0.2.9 + '@floating-ui/utils': 0.2.10 - '@floating-ui/dom@1.7.1': + '@floating-ui/dom@1.7.2': dependencies: - '@floating-ui/core': 1.7.1 - '@floating-ui/utils': 0.2.9 + '@floating-ui/core': 1.7.2 + '@floating-ui/utils': 0.2.10 - '@floating-ui/react-dom@2.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@floating-ui/react-dom@2.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@floating-ui/dom': 1.7.1 + '@floating-ui/dom': 1.7.2 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) '@floating-ui/react@0.26.28(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@floating-ui/react-dom': 2.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@floating-ui/utils': 0.2.9 + '@floating-ui/react-dom': 2.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@floating-ui/utils': 0.2.10 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) tabbable: 6.2.0 - '@floating-ui/react@0.27.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@floating-ui/react@0.27.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@floating-ui/react-dom': 2.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@floating-ui/utils': 0.2.9 + '@floating-ui/react-dom': 2.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@floating-ui/utils': 0.2.10 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) tabbable: 6.2.0 - '@floating-ui/utils@0.2.9': {} + '@floating-ui/utils@0.2.10': {} '@formatjs/ecma402-abstract@2.3.4': dependencies: '@formatjs/fast-memoize': 2.2.7 '@formatjs/intl-localematcher': 0.6.1 - decimal.js: 10.5.0 + decimal.js: 10.6.0 tslib: 2.8.1 '@formatjs/fast-memoize@2.2.7': @@ -9264,7 +9282,7 @@ snapshots: '@floating-ui/react': 0.26.28(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/focus': 3.20.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/interactions': 3.25.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@tanstack/react-virtual': 3.13.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tanstack/react-virtual': 3.13.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) use-sync-external-store: 1.5.0(react@18.3.1) @@ -9364,7 +9382,7 @@ snapshots: '@img/sharp-wasm32@0.33.5': dependencies: - '@emnapi/runtime': 1.4.3 + '@emnapi/runtime': 1.4.4 optional: true '@img/sharp-win32-ia32@0.33.5': @@ -9399,27 +9417,24 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 - '@jridgewell/gen-mapping@0.3.8': + '@jridgewell/gen-mapping@0.3.12': dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/sourcemap-codec': 1.5.4 + '@jridgewell/trace-mapping': 0.3.29 '@jridgewell/resolve-uri@3.1.2': {} - '@jridgewell/set-array@1.2.1': {} + '@jridgewell/sourcemap-codec@1.5.4': {} - '@jridgewell/sourcemap-codec@1.5.0': {} - - '@jridgewell/trace-mapping@0.3.25': + '@jridgewell/trace-mapping@0.3.29': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.4 '@jridgewell/trace-mapping@0.3.9': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.4 '@leichtgewicht/ip-codec@2.0.5': {} @@ -9459,7 +9474,7 @@ snapshots: '@types/react': 18.3.23 react: 18.3.1 - '@mermaid-js/parser@0.5.0': + '@mermaid-js/parser@0.6.1': dependencies: langium: 3.3.1 @@ -9524,8 +9539,8 @@ snapshots: '@napi-rs/wasm-runtime@0.2.11': dependencies: - '@emnapi/core': 1.4.3 - '@emnapi/runtime': 1.4.3 + '@emnapi/core': 1.4.4 + '@emnapi/runtime': 1.4.4 '@tybys/wasm-util': 0.9.0 optional: true @@ -9602,29 +9617,29 @@ snapshots: '@nolyfill/is-core-module@1.0.39': {} - '@nomicfoundation/edr-darwin-arm64@0.11.2': {} + '@nomicfoundation/edr-darwin-arm64@0.11.3': {} - '@nomicfoundation/edr-darwin-x64@0.11.2': {} + '@nomicfoundation/edr-darwin-x64@0.11.3': {} - '@nomicfoundation/edr-linux-arm64-gnu@0.11.2': {} + '@nomicfoundation/edr-linux-arm64-gnu@0.11.3': {} - '@nomicfoundation/edr-linux-arm64-musl@0.11.2': {} + '@nomicfoundation/edr-linux-arm64-musl@0.11.3': {} - '@nomicfoundation/edr-linux-x64-gnu@0.11.2': {} + '@nomicfoundation/edr-linux-x64-gnu@0.11.3': {} - '@nomicfoundation/edr-linux-x64-musl@0.11.2': {} + '@nomicfoundation/edr-linux-x64-musl@0.11.3': {} - '@nomicfoundation/edr-win32-x64-msvc@0.11.2': {} + '@nomicfoundation/edr-win32-x64-msvc@0.11.3': {} - '@nomicfoundation/edr@0.11.2': + '@nomicfoundation/edr@0.11.3': dependencies: - '@nomicfoundation/edr-darwin-arm64': 0.11.2 - '@nomicfoundation/edr-darwin-x64': 0.11.2 - '@nomicfoundation/edr-linux-arm64-gnu': 0.11.2 - '@nomicfoundation/edr-linux-arm64-musl': 0.11.2 - '@nomicfoundation/edr-linux-x64-gnu': 0.11.2 - '@nomicfoundation/edr-linux-x64-musl': 0.11.2 - '@nomicfoundation/edr-win32-x64-msvc': 0.11.2 + '@nomicfoundation/edr-darwin-arm64': 0.11.3 + '@nomicfoundation/edr-darwin-x64': 0.11.3 + '@nomicfoundation/edr-linux-arm64-gnu': 0.11.3 + '@nomicfoundation/edr-linux-arm64-musl': 0.11.3 + '@nomicfoundation/edr-linux-x64-gnu': 0.11.3 + '@nomicfoundation/edr-linux-x64-musl': 0.11.3 + '@nomicfoundation/edr-win32-x64-msvc': 0.11.3 '@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.2': optional: true @@ -9661,7 +9676,7 @@ snapshots: dependencies: '@npmcli/map-workspaces': 3.0.6 '@npmcli/package-json': 5.2.1 - ci-info: 4.2.0 + ci-info: 4.3.0 ini: 4.1.3 nopt: 7.2.1 proc-log: 4.2.0 @@ -9973,7 +9988,7 @@ snapshots: '@radix-ui/react-popper@1.2.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@floating-ui/react-dom': 2.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@floating-ui/react-dom': 2.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-arrow': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.23)(react@18.3.1) '@radix-ui/react-context': 1.1.2(@types/react@18.3.23)(react@18.3.1) @@ -11176,64 +11191,64 @@ snapshots: '@resvg/resvg-wasm@2.6.2': {} - '@rollup/rollup-android-arm-eabi@4.44.0': + '@rollup/rollup-android-arm-eabi@4.44.2': optional: true - '@rollup/rollup-android-arm64@4.44.0': + '@rollup/rollup-android-arm64@4.44.2': optional: true - '@rollup/rollup-darwin-arm64@4.44.0': + '@rollup/rollup-darwin-arm64@4.44.2': optional: true - '@rollup/rollup-darwin-x64@4.44.0': + '@rollup/rollup-darwin-x64@4.44.2': optional: true - '@rollup/rollup-freebsd-arm64@4.44.0': + '@rollup/rollup-freebsd-arm64@4.44.2': optional: true - '@rollup/rollup-freebsd-x64@4.44.0': + '@rollup/rollup-freebsd-x64@4.44.2': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.44.0': + '@rollup/rollup-linux-arm-gnueabihf@4.44.2': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.44.0': + '@rollup/rollup-linux-arm-musleabihf@4.44.2': optional: true - '@rollup/rollup-linux-arm64-gnu@4.44.0': + '@rollup/rollup-linux-arm64-gnu@4.44.2': optional: true - '@rollup/rollup-linux-arm64-musl@4.44.0': + '@rollup/rollup-linux-arm64-musl@4.44.2': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.44.0': + '@rollup/rollup-linux-loongarch64-gnu@4.44.2': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.44.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.44.2': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.44.0': + '@rollup/rollup-linux-riscv64-gnu@4.44.2': optional: true - '@rollup/rollup-linux-riscv64-musl@4.44.0': + '@rollup/rollup-linux-riscv64-musl@4.44.2': optional: true - '@rollup/rollup-linux-s390x-gnu@4.44.0': + '@rollup/rollup-linux-s390x-gnu@4.44.2': optional: true - '@rollup/rollup-linux-x64-gnu@4.44.0': + '@rollup/rollup-linux-x64-gnu@4.44.2': optional: true - '@rollup/rollup-linux-x64-musl@4.44.0': + '@rollup/rollup-linux-x64-musl@4.44.2': optional: true - '@rollup/rollup-win32-arm64-msvc@4.44.0': + '@rollup/rollup-win32-arm64-msvc@4.44.2': optional: true - '@rollup/rollup-win32-ia32-msvc@4.44.0': + '@rollup/rollup-win32-ia32-msvc@4.44.2': optional: true - '@rollup/rollup-win32-x64-msvc@4.44.0': + '@rollup/rollup-win32-x64-msvc@4.44.2': optional: true '@rrweb/types@2.0.0-alpha.18': {} @@ -11242,7 +11257,7 @@ snapshots: '@rtsao/scc@1.1.0': {} - '@rushstack/eslint-patch@1.11.0': {} + '@rushstack/eslint-patch@1.12.0': {} '@scure/base@1.1.9': {} @@ -11489,24 +11504,24 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@tanstack/query-core@5.81.2': {} + '@tanstack/query-core@5.82.0': {} - '@tanstack/react-query@5.81.2(react@18.3.1)': + '@tanstack/react-query@5.82.0(react@18.3.1)': dependencies: - '@tanstack/query-core': 5.81.2 + '@tanstack/query-core': 5.82.0 react: 18.3.1 - '@tanstack/react-virtual@3.13.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@tanstack/react-virtual@3.13.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@tanstack/virtual-core': 3.13.11 + '@tanstack/virtual-core': 3.13.12 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@tanstack/virtual-core@3.13.11': {} + '@tanstack/virtual-core@3.13.12': {} '@theguild/remark-mermaid@0.1.3(react@18.3.1)': dependencies: - mermaid: 11.7.0 + mermaid: 11.8.1 react: 18.3.1 unist-util-visit: 5.0.0 transitivePeerDependencies: @@ -11584,11 +11599,11 @@ snapshots: '@types/bn.js@5.2.0': dependencies: - '@types/node': 22.15.33 + '@types/node': 22.16.2 '@types/concat-stream@2.0.3': dependencies: - '@types/node': 22.15.33 + '@types/node': 22.16.2 '@types/cookie@0.6.0': {} @@ -11737,7 +11752,7 @@ snapshots: '@types/katex@0.16.7': {} - '@types/lodash@4.17.19': {} + '@types/lodash@4.17.20': {} '@types/lru-cache@5.1.1': {} @@ -11755,7 +11770,7 @@ snapshots: dependencies: '@types/unist': 3.0.3 - '@types/node@22.15.33': + '@types/node@22.16.2': dependencies: undici-types: 6.21.0 @@ -11946,63 +11961,63 @@ snapshots: '@uniswap/v3-core': 1.0.0 '@uniswap/v3-periphery': 1.4.4 - '@unrs/resolver-binding-android-arm-eabi@1.9.1': + '@unrs/resolver-binding-android-arm-eabi@1.11.1': optional: true - '@unrs/resolver-binding-android-arm64@1.9.1': + '@unrs/resolver-binding-android-arm64@1.11.1': optional: true - '@unrs/resolver-binding-darwin-arm64@1.9.1': + '@unrs/resolver-binding-darwin-arm64@1.11.1': optional: true - '@unrs/resolver-binding-darwin-x64@1.9.1': + '@unrs/resolver-binding-darwin-x64@1.11.1': optional: true - '@unrs/resolver-binding-freebsd-x64@1.9.1': + '@unrs/resolver-binding-freebsd-x64@1.11.1': optional: true - '@unrs/resolver-binding-linux-arm-gnueabihf@1.9.1': + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': optional: true - '@unrs/resolver-binding-linux-arm-musleabihf@1.9.1': + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': optional: true - '@unrs/resolver-binding-linux-arm64-gnu@1.9.1': + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': optional: true - '@unrs/resolver-binding-linux-arm64-musl@1.9.1': + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': optional: true - '@unrs/resolver-binding-linux-ppc64-gnu@1.9.1': + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': optional: true - '@unrs/resolver-binding-linux-riscv64-gnu@1.9.1': + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': optional: true - '@unrs/resolver-binding-linux-riscv64-musl@1.9.1': + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': optional: true - '@unrs/resolver-binding-linux-s390x-gnu@1.9.1': + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': optional: true - '@unrs/resolver-binding-linux-x64-gnu@1.9.1': + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': optional: true - '@unrs/resolver-binding-linux-x64-musl@1.9.1': + '@unrs/resolver-binding-linux-x64-musl@1.11.1': optional: true - '@unrs/resolver-binding-wasm32-wasi@1.9.1': + '@unrs/resolver-binding-wasm32-wasi@1.11.1': dependencies: '@napi-rs/wasm-runtime': 0.2.11 optional: true - '@unrs/resolver-binding-win32-arm64-msvc@1.9.1': + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': optional: true - '@unrs/resolver-binding-win32-ia32-msvc@1.9.1': + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': optional: true - '@unrs/resolver-binding-win32-x64-msvc@1.9.1': + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': optional: true '@ver0/deep-equal@1.0.0': {} @@ -12011,16 +12026,16 @@ snapshots: dependencies: '@vitest/spy': 2.1.9 '@vitest/utils': 2.1.9 - chai: 5.2.0 + chai: 5.2.1 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.9(vite@5.4.19(@types/node@22.15.33))': + '@vitest/mocker@2.1.9(vite@5.4.19(@types/node@22.16.2))': dependencies: '@vitest/spy': 2.1.9 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 5.4.19(@types/node@22.15.33) + vite: 5.4.19(@types/node@22.16.2) '@vitest/pretty-format@2.1.9': dependencies: @@ -12047,13 +12062,13 @@ snapshots: loupe: 3.1.4 tinyrainbow: 1.2.0 - '@web3icons/common@0.11.13(typescript@5.8.3)': + '@web3icons/common@0.11.14(typescript@5.8.3)': dependencies: typescript: 5.8.3 - '@web3icons/react@4.0.16(react@18.3.1)(typescript@5.8.3)': + '@web3icons/react@4.0.17(react@18.3.1)(typescript@5.8.3)': dependencies: - '@web3icons/common': 0.11.13(typescript@5.8.3) + '@web3icons/common': 0.11.14(typescript@5.8.3) react: 18.3.1 transitivePeerDependencies: - typescript @@ -12074,10 +12089,10 @@ snapshots: abbrev@2.0.0: {} - abitype@1.0.8(typescript@5.8.3)(zod@3.25.67): + abitype@1.0.8(typescript@5.8.3)(zod@3.25.76): optionalDependencies: typescript: 5.8.3 - zod: 3.25.67 + zod: 3.25.76 acorn-jsx@5.3.2(acorn@8.15.0): dependencies: @@ -12099,7 +12114,7 @@ snapshots: transitivePeerDependencies: - supports-color - agent-base@7.1.3: {} + agent-base@7.1.4: {} aggregate-error@3.1.0: dependencies: @@ -12124,21 +12139,21 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - algoliasearch@5.29.0: - dependencies: - '@algolia/client-abtesting': 5.29.0 - '@algolia/client-analytics': 5.29.0 - '@algolia/client-common': 5.29.0 - '@algolia/client-insights': 5.29.0 - '@algolia/client-personalization': 5.29.0 - '@algolia/client-query-suggestions': 5.29.0 - '@algolia/client-search': 5.29.0 - '@algolia/ingestion': 1.29.0 - '@algolia/monitoring': 1.29.0 - '@algolia/recommend': 5.29.0 - '@algolia/requester-browser-xhr': 5.29.0 - '@algolia/requester-fetch': 5.29.0 - '@algolia/requester-node-http': 5.29.0 + algoliasearch@5.32.0: + dependencies: + '@algolia/client-abtesting': 5.32.0 + '@algolia/client-analytics': 5.32.0 + '@algolia/client-common': 5.32.0 + '@algolia/client-insights': 5.32.0 + '@algolia/client-personalization': 5.32.0 + '@algolia/client-query-suggestions': 5.32.0 + '@algolia/client-search': 5.32.0 + '@algolia/ingestion': 1.32.0 + '@algolia/monitoring': 1.32.0 + '@algolia/recommend': 5.32.0 + '@algolia/requester-browser-xhr': 5.32.0 + '@algolia/requester-fetch': 5.32.0 + '@algolia/requester-node-http': 5.32.0 ansi-align@3.0.1: dependencies: @@ -12270,8 +12285,8 @@ snapshots: autoprefixer@10.4.21(postcss@8.5.6): dependencies: - browserslist: 4.25.0 - caniuse-lite: 1.0.30001724 + browserslist: 4.25.1 + caniuse-lite: 1.0.30001727 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -12366,12 +12381,12 @@ snapshots: browser-stdout@1.3.1: {} - browserslist@4.25.0: + browserslist@4.25.1: dependencies: - caniuse-lite: 1.0.30001724 - electron-to-chromium: 1.5.172 + caniuse-lite: 1.0.30001727 + electron-to-chromium: 1.5.181 node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.25.0) + update-browserslist-db: 1.1.3(browserslist@4.25.1) buffer-from@1.1.2: {} @@ -12380,9 +12395,9 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - bundle-require@5.1.0(esbuild@0.25.5): + bundle-require@5.1.0(esbuild@0.25.6): dependencies: - esbuild: 0.25.5 + esbuild: 0.25.6 load-tsconfig: 0.2.5 busboy@1.6.0: @@ -12418,17 +12433,17 @@ snapshots: camelize@1.0.1: {} - caniuse-lite@1.0.30001724: {} + caniuse-lite@1.0.30001727: {} ccount@2.0.1: {} - chai@5.2.0: + chai@5.2.1: dependencies: assertion-error: 2.0.1 check-error: 2.1.1 deep-eql: 5.0.2 loupe: 3.1.4 - pathval: 2.0.0 + pathval: 2.0.1 chalk@4.1.2: dependencies: @@ -12481,7 +12496,7 @@ snapshots: ci-info@2.0.0: {} - ci-info@4.2.0: {} + ci-info@4.3.0: {} clean-stack@2.2.0: {} @@ -12635,24 +12650,24 @@ snapshots: cssesc@3.0.0: {} - cssstyle@4.5.0: + cssstyle@4.6.0: dependencies: '@asamuzakjp/css-color': 3.2.0 rrweb-cssom: 0.8.0 csstype@3.1.3: {} - cytoscape-cose-bilkent@4.1.0(cytoscape@3.32.0): + cytoscape-cose-bilkent@4.1.0(cytoscape@3.32.1): dependencies: cose-base: 1.0.3 - cytoscape: 3.32.0 + cytoscape: 3.32.1 - cytoscape-fcose@2.2.0(cytoscape@3.32.0): + cytoscape-fcose@2.2.0(cytoscape@3.32.1): dependencies: cose-base: 2.2.0 - cytoscape: 3.32.0 + cytoscape: 3.32.1 - cytoscape@3.32.0: {} + cytoscape@3.32.1: {} d3-array@2.12.1: dependencies: @@ -12871,7 +12886,7 @@ snapshots: decimal.js-light@2.5.1: {} - decimal.js@10.5.0: {} + decimal.js@10.6.0: {} decode-named-character-reference@1.2.0: dependencies: @@ -12953,7 +12968,7 @@ snapshots: dotenv@14.3.2: {} - dotenv@16.5.0: {} + dotenv@16.6.1: {} dunder-proto@1.0.1: dependencies: @@ -12963,7 +12978,7 @@ snapshots: eastasianwidth@0.2.0: {} - electron-to-chromium@1.5.172: {} + electron-to-chromium@1.5.181: {} elliptic@6.6.1: dependencies: @@ -13172,33 +13187,34 @@ snapshots: '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 - esbuild@0.25.5: + esbuild@0.25.6: optionalDependencies: - '@esbuild/aix-ppc64': 0.25.5 - '@esbuild/android-arm': 0.25.5 - '@esbuild/android-arm64': 0.25.5 - '@esbuild/android-x64': 0.25.5 - '@esbuild/darwin-arm64': 0.25.5 - '@esbuild/darwin-x64': 0.25.5 - '@esbuild/freebsd-arm64': 0.25.5 - '@esbuild/freebsd-x64': 0.25.5 - '@esbuild/linux-arm': 0.25.5 - '@esbuild/linux-arm64': 0.25.5 - '@esbuild/linux-ia32': 0.25.5 - '@esbuild/linux-loong64': 0.25.5 - '@esbuild/linux-mips64el': 0.25.5 - '@esbuild/linux-ppc64': 0.25.5 - '@esbuild/linux-riscv64': 0.25.5 - '@esbuild/linux-s390x': 0.25.5 - '@esbuild/linux-x64': 0.25.5 - '@esbuild/netbsd-arm64': 0.25.5 - '@esbuild/netbsd-x64': 0.25.5 - '@esbuild/openbsd-arm64': 0.25.5 - '@esbuild/openbsd-x64': 0.25.5 - '@esbuild/sunos-x64': 0.25.5 - '@esbuild/win32-arm64': 0.25.5 - '@esbuild/win32-ia32': 0.25.5 - '@esbuild/win32-x64': 0.25.5 + '@esbuild/aix-ppc64': 0.25.6 + '@esbuild/android-arm': 0.25.6 + '@esbuild/android-arm64': 0.25.6 + '@esbuild/android-x64': 0.25.6 + '@esbuild/darwin-arm64': 0.25.6 + '@esbuild/darwin-x64': 0.25.6 + '@esbuild/freebsd-arm64': 0.25.6 + '@esbuild/freebsd-x64': 0.25.6 + '@esbuild/linux-arm': 0.25.6 + '@esbuild/linux-arm64': 0.25.6 + '@esbuild/linux-ia32': 0.25.6 + '@esbuild/linux-loong64': 0.25.6 + '@esbuild/linux-mips64el': 0.25.6 + '@esbuild/linux-ppc64': 0.25.6 + '@esbuild/linux-riscv64': 0.25.6 + '@esbuild/linux-s390x': 0.25.6 + '@esbuild/linux-x64': 0.25.6 + '@esbuild/netbsd-arm64': 0.25.6 + '@esbuild/netbsd-x64': 0.25.6 + '@esbuild/openbsd-arm64': 0.25.6 + '@esbuild/openbsd-x64': 0.25.6 + '@esbuild/openharmony-arm64': 0.25.6 + '@esbuild/sunos-x64': 0.25.6 + '@esbuild/win32-arm64': 0.25.6 + '@esbuild/win32-ia32': 0.25.6 + '@esbuild/win32-x64': 0.25.6 escalade@3.2.0: {} @@ -13225,13 +13241,13 @@ snapshots: is-bun-module: 2.0.0 stable-hash: 0.0.5 tinyglobby: 0.2.14 - unrs-resolver: 1.9.1 + unrs-resolver: 1.11.1 optionalDependencies: eslint-plugin-import: 2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-mdx@3.5.0(eslint@8.57.1): + eslint-mdx@3.6.2(eslint@8.57.1): dependencies: acorn: 8.15.0 acorn-jsx: 5.3.2(acorn@8.15.0) @@ -13310,10 +13326,10 @@ snapshots: safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-mdx@3.5.0(eslint@8.57.1): + eslint-plugin-mdx@3.6.2(eslint@8.57.1): dependencies: eslint: 8.57.1 - eslint-mdx: 3.5.0(eslint@8.57.1) + eslint-mdx: 3.6.2(eslint@8.57.1) mdast-util-from-markdown: 2.0.2 mdast-util-mdx: 3.0.0 micromark-extension-mdxjs: 3.0.0 @@ -13551,7 +13567,7 @@ snapshots: exit-hook@2.2.1: {} - expect-type@1.2.1: {} + expect-type@1.2.2: {} exsolve@1.0.7: {} @@ -13629,7 +13645,7 @@ snapshots: dependencies: magic-string: 0.30.17 mlly: 1.7.4 - rollup: 4.44.0 + rollup: 4.44.2 flat-cache@3.2.0: dependencies: @@ -13668,10 +13684,10 @@ snapshots: fraction.js@4.3.7: {} - framer-motion@12.19.1(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + framer-motion@12.23.1(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - motion-dom: 12.19.0 - motion-utils: 12.19.0 + motion-dom: 12.23.1 + motion-utils: 12.23.1 tslib: 2.8.1 optionalDependencies: '@emotion/is-prop-valid': 0.8.8 @@ -13792,8 +13808,6 @@ snapshots: minimatch: 5.1.6 once: 1.4.0 - globals@11.12.0: {} - globals@13.24.0: dependencies: type-fest: 0.20.2 @@ -13865,7 +13879,7 @@ snapshots: dependencies: '@ethereumjs/util': 9.1.0 '@ethersproject/abi': 5.8.0 - '@nomicfoundation/edr': 0.11.2 + '@nomicfoundation/edr': 0.11.3 '@nomicfoundation/solidity-analyzer': 0.1.2 '@sentry/node': 5.30.0 '@types/bn.js': 5.2.0 @@ -14132,7 +14146,7 @@ snapshots: http-proxy-agent@7.0.2: dependencies: - agent-base: 7.1.3 + agent-base: 7.1.4 debug: 4.4.1(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -14146,7 +14160,7 @@ snapshots: https-proxy-agent@7.0.6: dependencies: - agent-base: 7.1.3 + agent-base: 7.1.4 debug: 4.4.1(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -14441,9 +14455,9 @@ snapshots: jsdom@24.1.3: dependencies: - cssstyle: 4.5.0 + cssstyle: 4.6.0 data-urls: 5.0.0 - decimal.js: 10.5.0 + decimal.js: 10.6.0 form-data: 4.0.3 html-encoding-sniffer: 4.0.0 http-proxy-agent: 7.0.2 @@ -14460,7 +14474,7 @@ snapshots: whatwg-encoding: 3.1.1 whatwg-mimetype: 4.0.0 whatwg-url: 14.2.0 - ws: 8.18.2 + ws: 8.18.3 xml-name-validator: 5.0.0 transitivePeerDependencies: - bufferutil @@ -14572,7 +14586,7 @@ snapshots: local-pkg@1.1.1: dependencies: mlly: 1.7.4 - pkg-types: 2.1.0 + pkg-types: 2.2.0 quansync: 0.2.10 locate-path@6.0.0: @@ -14610,7 +14624,7 @@ snapshots: magic-string@0.30.17: dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.4 markdown-extensions@2.0.0: {} @@ -14825,15 +14839,15 @@ snapshots: merge2@1.4.1: {} - mermaid@11.7.0: + mermaid@11.8.1: dependencies: '@braintree/sanitize-url': 7.1.1 '@iconify/utils': 2.3.0 - '@mermaid-js/parser': 0.5.0 + '@mermaid-js/parser': 0.6.1 '@types/d3': 7.4.3 - cytoscape: 3.32.0 - cytoscape-cose-bilkent: 4.1.0(cytoscape@3.32.0) - cytoscape-fcose: 2.2.0(cytoscape@3.32.0) + cytoscape: 3.32.1 + cytoscape-cose-bilkent: 4.1.0(cytoscape@3.32.1) + cytoscape-fcose: 2.2.0(cytoscape@3.32.1) d3: 7.9.0 d3-sankey: 0.12.3 dagre-d3-es: 7.0.11 @@ -15203,7 +15217,7 @@ snapshots: mitt@3.0.1: {} - mixpanel-browser@2.65.0: + mixpanel-browser@2.66.0: dependencies: rrweb: 2.0.0-alpha.18 @@ -15245,15 +15259,15 @@ snapshots: yargs-parser: 20.2.9 yargs-unparser: 2.0.0 - motion-dom@12.19.0: + motion-dom@12.23.1: dependencies: - motion-utils: 12.19.0 + motion-utils: 12.23.1 - motion-utils@12.19.0: {} + motion-utils@12.23.1: {} - motion@12.19.1(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + motion@12.23.1(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - framer-motion: 12.19.1(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + framer-motion: 12.23.1(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) tslib: 2.8.1 optionalDependencies: '@emotion/is-prop-valid': 0.8.8 @@ -15274,7 +15288,7 @@ snapshots: nanoid@3.3.11: {} - napi-postinstall@0.2.4: {} + napi-postinstall@0.3.0: {} natural-compare@1.4.0: {} @@ -15299,7 +15313,7 @@ snapshots: '@next/env': 14.2.30 '@swc/helpers': 0.5.5 busboy: 1.6.0 - caniuse-lite: 1.0.30001724 + caniuse-lite: 1.0.30001727 graceful-fs: 4.2.11 postcss: 8.4.31 react: 18.3.1 @@ -15361,8 +15375,8 @@ snapshots: unist-util-remove: 4.0.0 unist-util-visit: 5.0.0 yaml: 2.8.0 - zod: 3.25.67 - zod-validation-error: 3.5.2(zod@3.25.67) + zod: 3.25.76 + zod-validation-error: 3.5.2(zod@3.25.76) transitivePeerDependencies: - '@types/react' - acorn @@ -15532,7 +15546,7 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 - ox@0.8.1(typescript@5.8.3)(zod@3.25.67): + ox@0.8.1(typescript@5.8.3)(zod@3.25.76): dependencies: '@adraffy/ens-normalize': 1.11.0 '@noble/ciphers': 1.3.0 @@ -15540,7 +15554,7 @@ snapshots: '@noble/hashes': 1.8.0 '@scure/bip32': 1.7.0 '@scure/bip39': 1.6.0 - abitype: 1.0.8(typescript@5.8.3)(zod@3.25.67) + abitype: 1.0.8(typescript@5.8.3)(zod@3.25.76) eventemitter3: 5.0.1 optionalDependencies: typescript: 5.8.3 @@ -15647,7 +15661,7 @@ snapshots: pathe@2.0.3: {} - pathval@2.0.0: {} + pathval@2.0.1: {} picocolors@1.1.1: {} @@ -15669,7 +15683,7 @@ snapshots: mlly: 1.7.4 pathe: 2.0.3 - pkg-types@2.1.0: + pkg-types@2.2.0: dependencies: confbox: 0.2.2 exsolve: 1.0.7 @@ -15744,13 +15758,13 @@ snapshots: prelude-ls@1.2.1: {} - prettier-plugin-tailwindcss@0.6.13(prettier@3.6.1): + prettier-plugin-tailwindcss@0.6.14(prettier@3.6.2): dependencies: - prettier: 3.6.1 + prettier: 3.6.2 prettier@2.8.8: {} - prettier@3.6.1: {} + prettier@3.6.2: {} printable-characters@1.0.42: {} @@ -16304,30 +16318,30 @@ snapshots: dependencies: estree-walker: 0.6.1 - rollup@4.44.0: + rollup@4.44.2: dependencies: '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.44.0 - '@rollup/rollup-android-arm64': 4.44.0 - '@rollup/rollup-darwin-arm64': 4.44.0 - '@rollup/rollup-darwin-x64': 4.44.0 - '@rollup/rollup-freebsd-arm64': 4.44.0 - '@rollup/rollup-freebsd-x64': 4.44.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.44.0 - '@rollup/rollup-linux-arm-musleabihf': 4.44.0 - '@rollup/rollup-linux-arm64-gnu': 4.44.0 - '@rollup/rollup-linux-arm64-musl': 4.44.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.44.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.44.0 - '@rollup/rollup-linux-riscv64-gnu': 4.44.0 - '@rollup/rollup-linux-riscv64-musl': 4.44.0 - '@rollup/rollup-linux-s390x-gnu': 4.44.0 - '@rollup/rollup-linux-x64-gnu': 4.44.0 - '@rollup/rollup-linux-x64-musl': 4.44.0 - '@rollup/rollup-win32-arm64-msvc': 4.44.0 - '@rollup/rollup-win32-ia32-msvc': 4.44.0 - '@rollup/rollup-win32-x64-msvc': 4.44.0 + '@rollup/rollup-android-arm-eabi': 4.44.2 + '@rollup/rollup-android-arm64': 4.44.2 + '@rollup/rollup-darwin-arm64': 4.44.2 + '@rollup/rollup-darwin-x64': 4.44.2 + '@rollup/rollup-freebsd-arm64': 4.44.2 + '@rollup/rollup-freebsd-x64': 4.44.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.44.2 + '@rollup/rollup-linux-arm-musleabihf': 4.44.2 + '@rollup/rollup-linux-arm64-gnu': 4.44.2 + '@rollup/rollup-linux-arm64-musl': 4.44.2 + '@rollup/rollup-linux-loongarch64-gnu': 4.44.2 + '@rollup/rollup-linux-powerpc64le-gnu': 4.44.2 + '@rollup/rollup-linux-riscv64-gnu': 4.44.2 + '@rollup/rollup-linux-riscv64-musl': 4.44.2 + '@rollup/rollup-linux-s390x-gnu': 4.44.2 + '@rollup/rollup-linux-x64-gnu': 4.44.2 + '@rollup/rollup-linux-x64-musl': 4.44.2 + '@rollup/rollup-win32-arm64-msvc': 4.44.2 + '@rollup/rollup-win32-ia32-msvc': 4.44.2 + '@rollup/rollup-win32-x64-msvc': 4.44.2 fsevents: 2.3.3 roughjs@4.6.6: @@ -16800,7 +16814,7 @@ snapshots: sucrase@3.35.0: dependencies: - '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/gen-mapping': 0.3.12 commander: 4.1.1 glob: 10.4.5 lines-and-columns: 1.2.4 @@ -16972,18 +16986,18 @@ snapshots: tsup@8.5.0(jiti@1.21.7)(postcss@8.5.6)(tsx@4.20.3)(typescript@5.8.3)(yaml@2.8.0): dependencies: - bundle-require: 5.1.0(esbuild@0.25.5) + bundle-require: 5.1.0(esbuild@0.25.6) cac: 6.7.14 chokidar: 4.0.3 consola: 3.4.2 debug: 4.4.1(supports-color@8.1.1) - esbuild: 0.25.5 + esbuild: 0.25.6 fix-dts-default-cjs-exports: 1.0.1 joycon: 3.1.1 picocolors: 1.1.1 postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6)(tsx@4.20.3)(yaml@2.8.0) resolve-from: 5.0.0 - rollup: 4.44.0 + rollup: 4.44.2 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tinyexec: 0.3.2 @@ -17000,7 +17014,7 @@ snapshots: tsx@4.20.3: dependencies: - esbuild: 0.25.5 + esbuild: 0.25.6 get-tsconfig: 4.10.1 optionalDependencies: fsevents: 2.3.3 @@ -17134,7 +17148,7 @@ snapshots: '@types/concat-stream': 2.0.3 '@types/debug': 4.1.12 '@types/is-empty': 1.2.3 - '@types/node': 22.15.33 + '@types/node': 22.16.2 '@types/unist': 3.0.3 concat-stream: 2.0.0 debug: 4.4.1(supports-color@8.1.1) @@ -17255,33 +17269,33 @@ snapshots: unpipe@1.0.0: {} - unrs-resolver@1.9.1: + unrs-resolver@1.11.1: dependencies: - napi-postinstall: 0.2.4 + napi-postinstall: 0.3.0 optionalDependencies: - '@unrs/resolver-binding-android-arm-eabi': 1.9.1 - '@unrs/resolver-binding-android-arm64': 1.9.1 - '@unrs/resolver-binding-darwin-arm64': 1.9.1 - '@unrs/resolver-binding-darwin-x64': 1.9.1 - '@unrs/resolver-binding-freebsd-x64': 1.9.1 - '@unrs/resolver-binding-linux-arm-gnueabihf': 1.9.1 - '@unrs/resolver-binding-linux-arm-musleabihf': 1.9.1 - '@unrs/resolver-binding-linux-arm64-gnu': 1.9.1 - '@unrs/resolver-binding-linux-arm64-musl': 1.9.1 - '@unrs/resolver-binding-linux-ppc64-gnu': 1.9.1 - '@unrs/resolver-binding-linux-riscv64-gnu': 1.9.1 - '@unrs/resolver-binding-linux-riscv64-musl': 1.9.1 - '@unrs/resolver-binding-linux-s390x-gnu': 1.9.1 - '@unrs/resolver-binding-linux-x64-gnu': 1.9.1 - '@unrs/resolver-binding-linux-x64-musl': 1.9.1 - '@unrs/resolver-binding-wasm32-wasi': 1.9.1 - '@unrs/resolver-binding-win32-arm64-msvc': 1.9.1 - '@unrs/resolver-binding-win32-ia32-msvc': 1.9.1 - '@unrs/resolver-binding-win32-x64-msvc': 1.9.1 - - update-browserslist-db@1.1.3(browserslist@4.25.0): - dependencies: - browserslist: 4.25.0 + '@unrs/resolver-binding-android-arm-eabi': 1.11.1 + '@unrs/resolver-binding-android-arm64': 1.11.1 + '@unrs/resolver-binding-darwin-arm64': 1.11.1 + '@unrs/resolver-binding-darwin-x64': 1.11.1 + '@unrs/resolver-binding-freebsd-x64': 1.11.1 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.11.1 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.11.1 + '@unrs/resolver-binding-linux-arm64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-arm64-musl': 1.11.1 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-riscv64-musl': 1.11.1 + '@unrs/resolver-binding-linux-s390x-gnu': 1.11.1 + '@unrs/resolver-binding-linux-x64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-x64-musl': 1.11.1 + '@unrs/resolver-binding-wasm32-wasi': 1.11.1 + '@unrs/resolver-binding-win32-arm64-msvc': 1.11.1 + '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 + '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 + + update-browserslist-db@1.1.3(browserslist@4.25.1): + dependencies: + browserslist: 4.25.1 escalade: 3.2.0 picocolors: 1.1.1 @@ -17392,15 +17406,15 @@ snapshots: d3-time: 3.1.0 d3-timer: 3.0.1 - viem@2.31.4(typescript@5.8.3)(zod@3.25.67): + viem@2.31.7(typescript@5.8.3)(zod@3.25.76): dependencies: '@noble/curves': 1.9.2 '@noble/hashes': 1.8.0 '@scure/bip32': 1.7.0 '@scure/bip39': 1.6.0 - abitype: 1.0.8(typescript@5.8.3)(zod@3.25.67) + abitype: 1.0.8(typescript@5.8.3)(zod@3.25.76) isows: 1.0.7(ws@8.18.2) - ox: 0.8.1(typescript@5.8.3)(zod@3.25.67) + ox: 0.8.1(typescript@5.8.3)(zod@3.25.76) ws: 8.18.2 optionalDependencies: typescript: 5.8.3 @@ -17409,13 +17423,13 @@ snapshots: - utf-8-validate - zod - vite-node@2.1.9(@types/node@22.15.33): + vite-node@2.1.9(@types/node@22.16.2): dependencies: cac: 6.7.14 debug: 4.4.1(supports-color@8.1.1) es-module-lexer: 1.7.0 pathe: 1.1.2 - vite: 5.4.19(@types/node@22.15.33) + vite: 5.4.19(@types/node@22.16.2) transitivePeerDependencies: - '@types/node' - less @@ -17427,27 +17441,27 @@ snapshots: - supports-color - terser - vite@5.4.19(@types/node@22.15.33): + vite@5.4.19(@types/node@22.16.2): dependencies: esbuild: 0.21.5 postcss: 8.5.6 - rollup: 4.44.0 + rollup: 4.44.2 optionalDependencies: - '@types/node': 22.15.33 + '@types/node': 22.16.2 fsevents: 2.3.3 - vitest@2.1.9(@types/node@22.15.33)(jsdom@24.1.3): + vitest@2.1.9(@types/node@22.16.2)(jsdom@24.1.3): dependencies: '@vitest/expect': 2.1.9 - '@vitest/mocker': 2.1.9(vite@5.4.19(@types/node@22.15.33)) + '@vitest/mocker': 2.1.9(vite@5.4.19(@types/node@22.16.2)) '@vitest/pretty-format': 2.1.9 '@vitest/runner': 2.1.9 '@vitest/snapshot': 2.1.9 '@vitest/spy': 2.1.9 '@vitest/utils': 2.1.9 - chai: 5.2.0 + chai: 5.2.1 debug: 4.4.1(supports-color@8.1.1) - expect-type: 1.2.1 + expect-type: 1.2.2 magic-string: 0.30.17 pathe: 1.1.2 std-env: 3.9.0 @@ -17455,11 +17469,11 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.1.1 tinyrainbow: 1.2.0 - vite: 5.4.19(@types/node@22.15.33) - vite-node: 2.1.9(@types/node@22.15.33) + vite: 5.4.19(@types/node@22.16.2) + vite-node: 2.1.9(@types/node@22.16.2) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.15.33 + '@types/node': 22.16.2 jsdom: 24.1.3 transitivePeerDependencies: - less @@ -17601,7 +17615,7 @@ snapshots: workerpool@6.5.1: {} - wrangler@3.114.10(@cloudflare/workers-types@4.20250620.0): + wrangler@3.114.11(@cloudflare/workers-types@4.20250710.0): dependencies: '@cloudflare/kv-asset-handler': 0.3.4 '@cloudflare/unenv-preset': 2.0.2(unenv@2.0.0-rc.14)(workerd@1.20250408.0) @@ -17614,7 +17628,7 @@ snapshots: unenv: 2.0.0-rc.14 workerd: 1.20250408.0 optionalDependencies: - '@cloudflare/workers-types': 4.20250620.0 + '@cloudflare/workers-types': 4.20250710.0 fsevents: 2.3.3 sharp: 0.33.5 transitivePeerDependencies: @@ -17641,6 +17655,8 @@ snapshots: ws@8.18.2: {} + ws@8.18.3: {} + xml-name-validator@5.0.0: {} xmlchars@2.2.0: {} @@ -17684,18 +17700,18 @@ snapshots: mustache: 4.2.0 stacktracey: 2.1.8 - zod-validation-error@3.4.0(zod@3.23.8): + zod-validation-error@3.5.2(zod@3.25.58): dependencies: - zod: 3.23.8 + zod: 3.25.58 - zod-validation-error@3.5.2(zod@3.25.67): + zod-validation-error@3.5.2(zod@3.25.76): dependencies: - zod: 3.25.67 + zod: 3.25.76 zod@3.22.3: {} - zod@3.23.8: {} + zod@3.25.58: {} - zod@3.25.67: {} + zod@3.25.76: {} zwitch@2.0.4: {} diff --git a/website/package.json b/website/package.json index de1b54cabe11..02e4c97c301b 100644 --- a/website/package.json +++ b/website/package.json @@ -19,8 +19,8 @@ "dependencies": { "@docsearch/react": "^3.9.0", "@edgeandnode/common": "^7.0.4", - "@edgeandnode/gds": "^6.6.2", - "@edgeandnode/go": "^10.2.3", + "@edgeandnode/gds": "^6.7.0", + "@edgeandnode/go": "^10.3.0", "@emotion/react": "^11.14.0", "@graphprotocol/contracts": "^7.3.0", "@pinax/graph-networks-registry": "^0.7.1", @@ -33,8 +33,8 @@ "lodash": "^4.17.21", "mdast-util-mdx-jsx": "^3.2.0", "mdast-util-to-hast": "^13.2.0", - "mixpanel-browser": "^2.65.0", - "motion": "^12.19.1", + "mixpanel-browser": "^2.66.0", + "motion": "^12.23.1", "next": "^14.2.30", "next-seo": "^6.8.0", "next-sitemap": "^4.2.3", @@ -48,14 +48,14 @@ "theme-ui": "^0.17.2", "unist-util-visit": "^5.0.0", "vfile": "^6.0.3", - "zod": "^3.25.67" + "zod": "^3.25.76" }, "devDependencies": { "@types/hast": "^3.0.4", - "@types/lodash": "^4.17.19", + "@types/lodash": "^4.17.20", "@types/mdast": "^4.0.4", "@types/mixpanel-browser": "^2.60.0", - "@types/node": "^22.15.33", + "@types/node": "^22.16.2", "@types/react": "^18.3.23", "@types/react-dom": "^18.3.7", "@types/vfile": "^4.0.0", diff --git a/website/route-lockfile.txt b/website/route-lockfile.txt index e2481392bf41..bd51529eb7fe 100644 --- a/website/route-lockfile.txt +++ b/website/route-lockfile.txt @@ -2,6 +2,19 @@ /ar/ /ar/404/ /ar/about/ +/ar/ai-suite/ai-introduction/ +/ar/ai-suite/graph-assistant/faq/ +/ar/ai-suite/graph-assistant/how-to-guide/ +/ar/ai-suite/graph-assistant/introduction/ +/ar/ai-suite/graph-assistant/quick-start/ +/ar/ai-suite/subgraph-mcp/claude/ +/ar/ai-suite/subgraph-mcp/cline/ +/ar/ai-suite/subgraph-mcp/cursor/ +/ar/ai-suite/subgraph-mcp/introduction/ +/ar/ai-suite/token-api-mcp/claude/ +/ar/ai-suite/token-api-mcp/cline/ +/ar/ai-suite/token-api-mcp/cursor/ +/ar/ai-suite/token-api-mcp/introduction/ /ar/archived/arbitrum/arbitrum-faq/ /ar/archived/arbitrum/l2-transfer-tools-faq/ /ar/archived/arbitrum/l2-transfer-tools-guide/ @@ -16,7 +29,6 @@ /ar/indexing/tooling/graph-node/ /ar/indexing/tooling/graphcast/ /ar/resources/benefits/ -/ar/resources/claude-mcp/ /ar/resources/glossary/ /ar/resources/migration-guides/assemblyscript-migration-guide/ /ar/resources/migration-guides/graphql-validations-migration-guide/ @@ -64,9 +76,6 @@ /ar/subgraphs/guides/subgraph-debug-forking/ /ar/subgraphs/guides/subgraph-uncrashable/ /ar/subgraphs/guides/transfer-to-the-graph/ -/ar/subgraphs/mcp/claude/ -/ar/subgraphs/mcp/cline/ -/ar/subgraphs/mcp/cursor/ /ar/subgraphs/querying/best-practices/ /ar/subgraphs/querying/distributed-systems/ /ar/subgraphs/querying/from-an-application/ @@ -87,10 +96,6 @@ /ar/substreams/introduction/ /ar/substreams/publishing/ /ar/substreams/quick-start/ -/ar/substreams/sps/faq/ -/ar/substreams/sps/introduction/ -/ar/substreams/sps/triggers/ -/ar/substreams/sps/tutorial/ /ar/supported-networks/ /ar/supported-networks/abstract-testnet/ /ar/supported-networks/abstract/ @@ -154,6 +159,7 @@ /ar/supported-networks/holesky/ /ar/supported-networks/hoodi-cl/ /ar/supported-networks/hoodi/ +/ar/supported-networks/injective-evm-testnet/ /ar/supported-networks/injective-mainnet/ /ar/supported-networks/injective-testnet/ /ar/supported-networks/ink-sepolia/ @@ -260,16 +266,29 @@ /ar/token-api/evm/get-tokens-evm-by-contract/ /ar/token-api/evm/get-transfers-evm/ /ar/token-api/faq/ -/ar/token-api/mcp/claude/ -/ar/token-api/mcp/cline/ -/ar/token-api/mcp/cursor/ /ar/token-api/monitoring/get-health/ /ar/token-api/monitoring/get-networks/ /ar/token-api/monitoring/get-version/ /ar/token-api/quick-start/ +/ar/token-api/svm/get-balances-svm/ +/ar/token-api/svm/get-swaps-svm/ +/ar/token-api/svm/get-transfers-svm/ /cs/ /cs/404/ /cs/about/ +/cs/ai-suite/ai-introduction/ +/cs/ai-suite/graph-assistant/faq/ +/cs/ai-suite/graph-assistant/how-to-guide/ +/cs/ai-suite/graph-assistant/introduction/ +/cs/ai-suite/graph-assistant/quick-start/ +/cs/ai-suite/subgraph-mcp/claude/ +/cs/ai-suite/subgraph-mcp/cline/ +/cs/ai-suite/subgraph-mcp/cursor/ +/cs/ai-suite/subgraph-mcp/introduction/ +/cs/ai-suite/token-api-mcp/claude/ +/cs/ai-suite/token-api-mcp/cline/ +/cs/ai-suite/token-api-mcp/cursor/ +/cs/ai-suite/token-api-mcp/introduction/ /cs/archived/arbitrum/arbitrum-faq/ /cs/archived/arbitrum/l2-transfer-tools-faq/ /cs/archived/arbitrum/l2-transfer-tools-guide/ @@ -284,7 +303,6 @@ /cs/indexing/tooling/graph-node/ /cs/indexing/tooling/graphcast/ /cs/resources/benefits/ -/cs/resources/claude-mcp/ /cs/resources/glossary/ /cs/resources/migration-guides/assemblyscript-migration-guide/ /cs/resources/migration-guides/graphql-validations-migration-guide/ @@ -332,9 +350,6 @@ /cs/subgraphs/guides/subgraph-debug-forking/ /cs/subgraphs/guides/subgraph-uncrashable/ /cs/subgraphs/guides/transfer-to-the-graph/ -/cs/subgraphs/mcp/claude/ -/cs/subgraphs/mcp/cline/ -/cs/subgraphs/mcp/cursor/ /cs/subgraphs/querying/best-practices/ /cs/subgraphs/querying/distributed-systems/ /cs/subgraphs/querying/from-an-application/ @@ -355,10 +370,6 @@ /cs/substreams/introduction/ /cs/substreams/publishing/ /cs/substreams/quick-start/ -/cs/substreams/sps/faq/ -/cs/substreams/sps/introduction/ -/cs/substreams/sps/triggers/ -/cs/substreams/sps/tutorial/ /cs/supported-networks/ /cs/supported-networks/abstract-testnet/ /cs/supported-networks/abstract/ @@ -422,6 +433,7 @@ /cs/supported-networks/holesky/ /cs/supported-networks/hoodi-cl/ /cs/supported-networks/hoodi/ +/cs/supported-networks/injective-evm-testnet/ /cs/supported-networks/injective-mainnet/ /cs/supported-networks/injective-testnet/ /cs/supported-networks/ink-sepolia/ @@ -528,16 +540,29 @@ /cs/token-api/evm/get-tokens-evm-by-contract/ /cs/token-api/evm/get-transfers-evm/ /cs/token-api/faq/ -/cs/token-api/mcp/claude/ -/cs/token-api/mcp/cline/ -/cs/token-api/mcp/cursor/ /cs/token-api/monitoring/get-health/ /cs/token-api/monitoring/get-networks/ /cs/token-api/monitoring/get-version/ /cs/token-api/quick-start/ +/cs/token-api/svm/get-balances-svm/ +/cs/token-api/svm/get-swaps-svm/ +/cs/token-api/svm/get-transfers-svm/ /de/ /de/404/ /de/about/ +/de/ai-suite/ai-introduction/ +/de/ai-suite/graph-assistant/faq/ +/de/ai-suite/graph-assistant/how-to-guide/ +/de/ai-suite/graph-assistant/introduction/ +/de/ai-suite/graph-assistant/quick-start/ +/de/ai-suite/subgraph-mcp/claude/ +/de/ai-suite/subgraph-mcp/cline/ +/de/ai-suite/subgraph-mcp/cursor/ +/de/ai-suite/subgraph-mcp/introduction/ +/de/ai-suite/token-api-mcp/claude/ +/de/ai-suite/token-api-mcp/cline/ +/de/ai-suite/token-api-mcp/cursor/ +/de/ai-suite/token-api-mcp/introduction/ /de/archived/arbitrum/arbitrum-faq/ /de/archived/arbitrum/l2-transfer-tools-faq/ /de/archived/arbitrum/l2-transfer-tools-guide/ @@ -552,7 +577,6 @@ /de/indexing/tooling/graph-node/ /de/indexing/tooling/graphcast/ /de/resources/benefits/ -/de/resources/claude-mcp/ /de/resources/glossary/ /de/resources/migration-guides/assemblyscript-migration-guide/ /de/resources/migration-guides/graphql-validations-migration-guide/ @@ -600,9 +624,6 @@ /de/subgraphs/guides/subgraph-debug-forking/ /de/subgraphs/guides/subgraph-uncrashable/ /de/subgraphs/guides/transfer-to-the-graph/ -/de/subgraphs/mcp/claude/ -/de/subgraphs/mcp/cline/ -/de/subgraphs/mcp/cursor/ /de/subgraphs/querying/best-practices/ /de/subgraphs/querying/distributed-systems/ /de/subgraphs/querying/from-an-application/ @@ -623,10 +644,6 @@ /de/substreams/introduction/ /de/substreams/publishing/ /de/substreams/quick-start/ -/de/substreams/sps/faq/ -/de/substreams/sps/introduction/ -/de/substreams/sps/triggers/ -/de/substreams/sps/tutorial/ /de/supported-networks/ /de/supported-networks/abstract-testnet/ /de/supported-networks/abstract/ @@ -690,6 +707,7 @@ /de/supported-networks/holesky/ /de/supported-networks/hoodi-cl/ /de/supported-networks/hoodi/ +/de/supported-networks/injective-evm-testnet/ /de/supported-networks/injective-mainnet/ /de/supported-networks/injective-testnet/ /de/supported-networks/ink-sepolia/ @@ -796,16 +814,29 @@ /de/token-api/evm/get-tokens-evm-by-contract/ /de/token-api/evm/get-transfers-evm/ /de/token-api/faq/ -/de/token-api/mcp/claude/ -/de/token-api/mcp/cline/ -/de/token-api/mcp/cursor/ /de/token-api/monitoring/get-health/ /de/token-api/monitoring/get-networks/ /de/token-api/monitoring/get-version/ /de/token-api/quick-start/ +/de/token-api/svm/get-balances-svm/ +/de/token-api/svm/get-swaps-svm/ +/de/token-api/svm/get-transfers-svm/ /en/ /en/404/ /en/about/ +/en/ai-suite/ai-introduction/ +/en/ai-suite/graph-assistant/faq/ +/en/ai-suite/graph-assistant/how-to-guide/ +/en/ai-suite/graph-assistant/introduction/ +/en/ai-suite/graph-assistant/quick-start/ +/en/ai-suite/subgraph-mcp/claude/ +/en/ai-suite/subgraph-mcp/cline/ +/en/ai-suite/subgraph-mcp/cursor/ +/en/ai-suite/subgraph-mcp/introduction/ +/en/ai-suite/token-api-mcp/claude/ +/en/ai-suite/token-api-mcp/cline/ +/en/ai-suite/token-api-mcp/cursor/ +/en/ai-suite/token-api-mcp/introduction/ /en/archived/arbitrum/arbitrum-faq/ /en/archived/arbitrum/l2-transfer-tools-faq/ /en/archived/arbitrum/l2-transfer-tools-guide/ @@ -820,7 +851,6 @@ /en/indexing/tooling/graph-node/ /en/indexing/tooling/graphcast/ /en/resources/benefits/ -/en/resources/claude-mcp/ /en/resources/glossary/ /en/resources/migration-guides/assemblyscript-migration-guide/ /en/resources/migration-guides/graphql-validations-migration-guide/ @@ -868,9 +898,6 @@ /en/subgraphs/guides/subgraph-debug-forking/ /en/subgraphs/guides/subgraph-uncrashable/ /en/subgraphs/guides/transfer-to-the-graph/ -/en/subgraphs/mcp/claude/ -/en/subgraphs/mcp/cline/ -/en/subgraphs/mcp/cursor/ /en/subgraphs/querying/best-practices/ /en/subgraphs/querying/distributed-systems/ /en/subgraphs/querying/from-an-application/ @@ -891,10 +918,6 @@ /en/substreams/introduction/ /en/substreams/publishing/ /en/substreams/quick-start/ -/en/substreams/sps/faq/ -/en/substreams/sps/introduction/ -/en/substreams/sps/triggers/ -/en/substreams/sps/tutorial/ /en/supported-networks/ /en/supported-networks/abstract-testnet/ /en/supported-networks/abstract/ @@ -958,6 +981,7 @@ /en/supported-networks/holesky/ /en/supported-networks/hoodi-cl/ /en/supported-networks/hoodi/ +/en/supported-networks/injective-evm-testnet/ /en/supported-networks/injective-mainnet/ /en/supported-networks/injective-testnet/ /en/supported-networks/ink-sepolia/ @@ -1064,16 +1088,29 @@ /en/token-api/evm/get-tokens-evm-by-contract/ /en/token-api/evm/get-transfers-evm/ /en/token-api/faq/ -/en/token-api/mcp/claude/ -/en/token-api/mcp/cline/ -/en/token-api/mcp/cursor/ /en/token-api/monitoring/get-health/ /en/token-api/monitoring/get-networks/ /en/token-api/monitoring/get-version/ /en/token-api/quick-start/ +/en/token-api/svm/get-balances-svm/ +/en/token-api/svm/get-swaps-svm/ +/en/token-api/svm/get-transfers-svm/ /es/ /es/404/ /es/about/ +/es/ai-suite/ai-introduction/ +/es/ai-suite/graph-assistant/faq/ +/es/ai-suite/graph-assistant/how-to-guide/ +/es/ai-suite/graph-assistant/introduction/ +/es/ai-suite/graph-assistant/quick-start/ +/es/ai-suite/subgraph-mcp/claude/ +/es/ai-suite/subgraph-mcp/cline/ +/es/ai-suite/subgraph-mcp/cursor/ +/es/ai-suite/subgraph-mcp/introduction/ +/es/ai-suite/token-api-mcp/claude/ +/es/ai-suite/token-api-mcp/cline/ +/es/ai-suite/token-api-mcp/cursor/ +/es/ai-suite/token-api-mcp/introduction/ /es/archived/arbitrum/arbitrum-faq/ /es/archived/arbitrum/l2-transfer-tools-faq/ /es/archived/arbitrum/l2-transfer-tools-guide/ @@ -1088,7 +1125,6 @@ /es/indexing/tooling/graph-node/ /es/indexing/tooling/graphcast/ /es/resources/benefits/ -/es/resources/claude-mcp/ /es/resources/glossary/ /es/resources/migration-guides/assemblyscript-migration-guide/ /es/resources/migration-guides/graphql-validations-migration-guide/ @@ -1136,9 +1172,6 @@ /es/subgraphs/guides/subgraph-debug-forking/ /es/subgraphs/guides/subgraph-uncrashable/ /es/subgraphs/guides/transfer-to-the-graph/ -/es/subgraphs/mcp/claude/ -/es/subgraphs/mcp/cline/ -/es/subgraphs/mcp/cursor/ /es/subgraphs/querying/best-practices/ /es/subgraphs/querying/distributed-systems/ /es/subgraphs/querying/from-an-application/ @@ -1159,10 +1192,6 @@ /es/substreams/introduction/ /es/substreams/publishing/ /es/substreams/quick-start/ -/es/substreams/sps/faq/ -/es/substreams/sps/introduction/ -/es/substreams/sps/triggers/ -/es/substreams/sps/tutorial/ /es/supported-networks/ /es/supported-networks/abstract-testnet/ /es/supported-networks/abstract/ @@ -1226,6 +1255,7 @@ /es/supported-networks/holesky/ /es/supported-networks/hoodi-cl/ /es/supported-networks/hoodi/ +/es/supported-networks/injective-evm-testnet/ /es/supported-networks/injective-mainnet/ /es/supported-networks/injective-testnet/ /es/supported-networks/ink-sepolia/ @@ -1332,16 +1362,29 @@ /es/token-api/evm/get-tokens-evm-by-contract/ /es/token-api/evm/get-transfers-evm/ /es/token-api/faq/ -/es/token-api/mcp/claude/ -/es/token-api/mcp/cline/ -/es/token-api/mcp/cursor/ /es/token-api/monitoring/get-health/ /es/token-api/monitoring/get-networks/ /es/token-api/monitoring/get-version/ /es/token-api/quick-start/ +/es/token-api/svm/get-balances-svm/ +/es/token-api/svm/get-swaps-svm/ +/es/token-api/svm/get-transfers-svm/ /fr/ /fr/404/ /fr/about/ +/fr/ai-suite/ai-introduction/ +/fr/ai-suite/graph-assistant/faq/ +/fr/ai-suite/graph-assistant/how-to-guide/ +/fr/ai-suite/graph-assistant/introduction/ +/fr/ai-suite/graph-assistant/quick-start/ +/fr/ai-suite/subgraph-mcp/claude/ +/fr/ai-suite/subgraph-mcp/cline/ +/fr/ai-suite/subgraph-mcp/cursor/ +/fr/ai-suite/subgraph-mcp/introduction/ +/fr/ai-suite/token-api-mcp/claude/ +/fr/ai-suite/token-api-mcp/cline/ +/fr/ai-suite/token-api-mcp/cursor/ +/fr/ai-suite/token-api-mcp/introduction/ /fr/archived/arbitrum/arbitrum-faq/ /fr/archived/arbitrum/l2-transfer-tools-faq/ /fr/archived/arbitrum/l2-transfer-tools-guide/ @@ -1356,7 +1399,6 @@ /fr/indexing/tooling/graph-node/ /fr/indexing/tooling/graphcast/ /fr/resources/benefits/ -/fr/resources/claude-mcp/ /fr/resources/glossary/ /fr/resources/migration-guides/assemblyscript-migration-guide/ /fr/resources/migration-guides/graphql-validations-migration-guide/ @@ -1404,9 +1446,6 @@ /fr/subgraphs/guides/subgraph-debug-forking/ /fr/subgraphs/guides/subgraph-uncrashable/ /fr/subgraphs/guides/transfer-to-the-graph/ -/fr/subgraphs/mcp/claude/ -/fr/subgraphs/mcp/cline/ -/fr/subgraphs/mcp/cursor/ /fr/subgraphs/querying/best-practices/ /fr/subgraphs/querying/distributed-systems/ /fr/subgraphs/querying/from-an-application/ @@ -1427,10 +1466,6 @@ /fr/substreams/introduction/ /fr/substreams/publishing/ /fr/substreams/quick-start/ -/fr/substreams/sps/faq/ -/fr/substreams/sps/introduction/ -/fr/substreams/sps/triggers/ -/fr/substreams/sps/tutorial/ /fr/supported-networks/ /fr/supported-networks/abstract-testnet/ /fr/supported-networks/abstract/ @@ -1494,6 +1529,7 @@ /fr/supported-networks/holesky/ /fr/supported-networks/hoodi-cl/ /fr/supported-networks/hoodi/ +/fr/supported-networks/injective-evm-testnet/ /fr/supported-networks/injective-mainnet/ /fr/supported-networks/injective-testnet/ /fr/supported-networks/ink-sepolia/ @@ -1600,16 +1636,29 @@ /fr/token-api/evm/get-tokens-evm-by-contract/ /fr/token-api/evm/get-transfers-evm/ /fr/token-api/faq/ -/fr/token-api/mcp/claude/ -/fr/token-api/mcp/cline/ -/fr/token-api/mcp/cursor/ /fr/token-api/monitoring/get-health/ /fr/token-api/monitoring/get-networks/ /fr/token-api/monitoring/get-version/ /fr/token-api/quick-start/ +/fr/token-api/svm/get-balances-svm/ +/fr/token-api/svm/get-swaps-svm/ +/fr/token-api/svm/get-transfers-svm/ /hi/ /hi/404/ /hi/about/ +/hi/ai-suite/ai-introduction/ +/hi/ai-suite/graph-assistant/faq/ +/hi/ai-suite/graph-assistant/how-to-guide/ +/hi/ai-suite/graph-assistant/introduction/ +/hi/ai-suite/graph-assistant/quick-start/ +/hi/ai-suite/subgraph-mcp/claude/ +/hi/ai-suite/subgraph-mcp/cline/ +/hi/ai-suite/subgraph-mcp/cursor/ +/hi/ai-suite/subgraph-mcp/introduction/ +/hi/ai-suite/token-api-mcp/claude/ +/hi/ai-suite/token-api-mcp/cline/ +/hi/ai-suite/token-api-mcp/cursor/ +/hi/ai-suite/token-api-mcp/introduction/ /hi/archived/arbitrum/arbitrum-faq/ /hi/archived/arbitrum/l2-transfer-tools-faq/ /hi/archived/arbitrum/l2-transfer-tools-guide/ @@ -1624,7 +1673,6 @@ /hi/indexing/tooling/graph-node/ /hi/indexing/tooling/graphcast/ /hi/resources/benefits/ -/hi/resources/claude-mcp/ /hi/resources/glossary/ /hi/resources/migration-guides/assemblyscript-migration-guide/ /hi/resources/migration-guides/graphql-validations-migration-guide/ @@ -1672,9 +1720,6 @@ /hi/subgraphs/guides/subgraph-debug-forking/ /hi/subgraphs/guides/subgraph-uncrashable/ /hi/subgraphs/guides/transfer-to-the-graph/ -/hi/subgraphs/mcp/claude/ -/hi/subgraphs/mcp/cline/ -/hi/subgraphs/mcp/cursor/ /hi/subgraphs/querying/best-practices/ /hi/subgraphs/querying/distributed-systems/ /hi/subgraphs/querying/from-an-application/ @@ -1695,10 +1740,6 @@ /hi/substreams/introduction/ /hi/substreams/publishing/ /hi/substreams/quick-start/ -/hi/substreams/sps/faq/ -/hi/substreams/sps/introduction/ -/hi/substreams/sps/triggers/ -/hi/substreams/sps/tutorial/ /hi/supported-networks/ /hi/supported-networks/abstract-testnet/ /hi/supported-networks/abstract/ @@ -1762,6 +1803,7 @@ /hi/supported-networks/holesky/ /hi/supported-networks/hoodi-cl/ /hi/supported-networks/hoodi/ +/hi/supported-networks/injective-evm-testnet/ /hi/supported-networks/injective-mainnet/ /hi/supported-networks/injective-testnet/ /hi/supported-networks/ink-sepolia/ @@ -1868,16 +1910,29 @@ /hi/token-api/evm/get-tokens-evm-by-contract/ /hi/token-api/evm/get-transfers-evm/ /hi/token-api/faq/ -/hi/token-api/mcp/claude/ -/hi/token-api/mcp/cline/ -/hi/token-api/mcp/cursor/ /hi/token-api/monitoring/get-health/ /hi/token-api/monitoring/get-networks/ /hi/token-api/monitoring/get-version/ /hi/token-api/quick-start/ +/hi/token-api/svm/get-balances-svm/ +/hi/token-api/svm/get-swaps-svm/ +/hi/token-api/svm/get-transfers-svm/ /it/ /it/404/ /it/about/ +/it/ai-suite/ai-introduction/ +/it/ai-suite/graph-assistant/faq/ +/it/ai-suite/graph-assistant/how-to-guide/ +/it/ai-suite/graph-assistant/introduction/ +/it/ai-suite/graph-assistant/quick-start/ +/it/ai-suite/subgraph-mcp/claude/ +/it/ai-suite/subgraph-mcp/cline/ +/it/ai-suite/subgraph-mcp/cursor/ +/it/ai-suite/subgraph-mcp/introduction/ +/it/ai-suite/token-api-mcp/claude/ +/it/ai-suite/token-api-mcp/cline/ +/it/ai-suite/token-api-mcp/cursor/ +/it/ai-suite/token-api-mcp/introduction/ /it/archived/arbitrum/arbitrum-faq/ /it/archived/arbitrum/l2-transfer-tools-faq/ /it/archived/arbitrum/l2-transfer-tools-guide/ @@ -1892,7 +1947,6 @@ /it/indexing/tooling/graph-node/ /it/indexing/tooling/graphcast/ /it/resources/benefits/ -/it/resources/claude-mcp/ /it/resources/glossary/ /it/resources/migration-guides/assemblyscript-migration-guide/ /it/resources/migration-guides/graphql-validations-migration-guide/ @@ -1940,9 +1994,6 @@ /it/subgraphs/guides/subgraph-debug-forking/ /it/subgraphs/guides/subgraph-uncrashable/ /it/subgraphs/guides/transfer-to-the-graph/ -/it/subgraphs/mcp/claude/ -/it/subgraphs/mcp/cline/ -/it/subgraphs/mcp/cursor/ /it/subgraphs/querying/best-practices/ /it/subgraphs/querying/distributed-systems/ /it/subgraphs/querying/from-an-application/ @@ -1963,10 +2014,6 @@ /it/substreams/introduction/ /it/substreams/publishing/ /it/substreams/quick-start/ -/it/substreams/sps/faq/ -/it/substreams/sps/introduction/ -/it/substreams/sps/triggers/ -/it/substreams/sps/tutorial/ /it/supported-networks/ /it/supported-networks/abstract-testnet/ /it/supported-networks/abstract/ @@ -2030,6 +2077,7 @@ /it/supported-networks/holesky/ /it/supported-networks/hoodi-cl/ /it/supported-networks/hoodi/ +/it/supported-networks/injective-evm-testnet/ /it/supported-networks/injective-mainnet/ /it/supported-networks/injective-testnet/ /it/supported-networks/ink-sepolia/ @@ -2136,16 +2184,29 @@ /it/token-api/evm/get-tokens-evm-by-contract/ /it/token-api/evm/get-transfers-evm/ /it/token-api/faq/ -/it/token-api/mcp/claude/ -/it/token-api/mcp/cline/ -/it/token-api/mcp/cursor/ /it/token-api/monitoring/get-health/ /it/token-api/monitoring/get-networks/ /it/token-api/monitoring/get-version/ /it/token-api/quick-start/ +/it/token-api/svm/get-balances-svm/ +/it/token-api/svm/get-swaps-svm/ +/it/token-api/svm/get-transfers-svm/ /ja/ /ja/404/ /ja/about/ +/ja/ai-suite/ai-introduction/ +/ja/ai-suite/graph-assistant/faq/ +/ja/ai-suite/graph-assistant/how-to-guide/ +/ja/ai-suite/graph-assistant/introduction/ +/ja/ai-suite/graph-assistant/quick-start/ +/ja/ai-suite/subgraph-mcp/claude/ +/ja/ai-suite/subgraph-mcp/cline/ +/ja/ai-suite/subgraph-mcp/cursor/ +/ja/ai-suite/subgraph-mcp/introduction/ +/ja/ai-suite/token-api-mcp/claude/ +/ja/ai-suite/token-api-mcp/cline/ +/ja/ai-suite/token-api-mcp/cursor/ +/ja/ai-suite/token-api-mcp/introduction/ /ja/archived/arbitrum/arbitrum-faq/ /ja/archived/arbitrum/l2-transfer-tools-faq/ /ja/archived/arbitrum/l2-transfer-tools-guide/ @@ -2160,7 +2221,6 @@ /ja/indexing/tooling/graph-node/ /ja/indexing/tooling/graphcast/ /ja/resources/benefits/ -/ja/resources/claude-mcp/ /ja/resources/glossary/ /ja/resources/migration-guides/assemblyscript-migration-guide/ /ja/resources/migration-guides/graphql-validations-migration-guide/ @@ -2208,9 +2268,6 @@ /ja/subgraphs/guides/subgraph-debug-forking/ /ja/subgraphs/guides/subgraph-uncrashable/ /ja/subgraphs/guides/transfer-to-the-graph/ -/ja/subgraphs/mcp/claude/ -/ja/subgraphs/mcp/cline/ -/ja/subgraphs/mcp/cursor/ /ja/subgraphs/querying/best-practices/ /ja/subgraphs/querying/distributed-systems/ /ja/subgraphs/querying/from-an-application/ @@ -2231,10 +2288,6 @@ /ja/substreams/introduction/ /ja/substreams/publishing/ /ja/substreams/quick-start/ -/ja/substreams/sps/faq/ -/ja/substreams/sps/introduction/ -/ja/substreams/sps/triggers/ -/ja/substreams/sps/tutorial/ /ja/supported-networks/ /ja/supported-networks/abstract-testnet/ /ja/supported-networks/abstract/ @@ -2298,6 +2351,7 @@ /ja/supported-networks/holesky/ /ja/supported-networks/hoodi-cl/ /ja/supported-networks/hoodi/ +/ja/supported-networks/injective-evm-testnet/ /ja/supported-networks/injective-mainnet/ /ja/supported-networks/injective-testnet/ /ja/supported-networks/ink-sepolia/ @@ -2404,14 +2458,27 @@ /ja/token-api/evm/get-tokens-evm-by-contract/ /ja/token-api/evm/get-transfers-evm/ /ja/token-api/faq/ -/ja/token-api/mcp/claude/ -/ja/token-api/mcp/cline/ -/ja/token-api/mcp/cursor/ /ja/token-api/monitoring/get-health/ /ja/token-api/monitoring/get-networks/ /ja/token-api/monitoring/get-version/ /ja/token-api/quick-start/ +/ja/token-api/svm/get-balances-svm/ +/ja/token-api/svm/get-swaps-svm/ +/ja/token-api/svm/get-transfers-svm/ /ko/about/ +/ko/ai-suite/ai-introduction/ +/ko/ai-suite/graph-assistant/faq/ +/ko/ai-suite/graph-assistant/how-to-guide/ +/ko/ai-suite/graph-assistant/introduction/ +/ko/ai-suite/graph-assistant/quick-start/ +/ko/ai-suite/subgraph-mcp/claude/ +/ko/ai-suite/subgraph-mcp/cline/ +/ko/ai-suite/subgraph-mcp/cursor/ +/ko/ai-suite/subgraph-mcp/introduction/ +/ko/ai-suite/token-api-mcp/claude/ +/ko/ai-suite/token-api-mcp/cline/ +/ko/ai-suite/token-api-mcp/cursor/ +/ko/ai-suite/token-api-mcp/introduction/ /ko/archived/arbitrum/arbitrum-faq/ /ko/archived/arbitrum/l2-transfer-tools-faq/ /ko/archived/arbitrum/l2-transfer-tools-guide/ @@ -2426,7 +2493,6 @@ /ko/indexing/tooling/graph-node/ /ko/indexing/tooling/graphcast/ /ko/resources/benefits/ -/ko/resources/claude-mcp/ /ko/resources/glossary/ /ko/resources/migration-guides/assemblyscript-migration-guide/ /ko/resources/migration-guides/graphql-validations-migration-guide/ @@ -2474,9 +2540,6 @@ /ko/subgraphs/guides/subgraph-debug-forking/ /ko/subgraphs/guides/subgraph-uncrashable/ /ko/subgraphs/guides/transfer-to-the-graph/ -/ko/subgraphs/mcp/claude/ -/ko/subgraphs/mcp/cline/ -/ko/subgraphs/mcp/cursor/ /ko/subgraphs/querying/best-practices/ /ko/subgraphs/querying/distributed-systems/ /ko/subgraphs/querying/from-an-application/ @@ -2497,10 +2560,6 @@ /ko/substreams/introduction/ /ko/substreams/publishing/ /ko/substreams/quick-start/ -/ko/substreams/sps/faq/ -/ko/substreams/sps/introduction/ -/ko/substreams/sps/triggers/ -/ko/substreams/sps/tutorial/ /ko/supported-networks/ /ko/token-api/evm/get-balances-evm-by-address/ /ko/token-api/evm/get-historical-balances-evm-by-address/ @@ -2518,16 +2577,29 @@ /ko/token-api/evm/get-tokens-evm-by-contract/ /ko/token-api/evm/get-transfers-evm/ /ko/token-api/faq/ -/ko/token-api/mcp/claude/ -/ko/token-api/mcp/cline/ -/ko/token-api/mcp/cursor/ /ko/token-api/monitoring/get-health/ /ko/token-api/monitoring/get-networks/ /ko/token-api/monitoring/get-version/ /ko/token-api/quick-start/ +/ko/token-api/svm/get-balances-svm/ +/ko/token-api/svm/get-swaps-svm/ +/ko/token-api/svm/get-transfers-svm/ /mr/ /mr/404/ /mr/about/ +/mr/ai-suite/ai-introduction/ +/mr/ai-suite/graph-assistant/faq/ +/mr/ai-suite/graph-assistant/how-to-guide/ +/mr/ai-suite/graph-assistant/introduction/ +/mr/ai-suite/graph-assistant/quick-start/ +/mr/ai-suite/subgraph-mcp/claude/ +/mr/ai-suite/subgraph-mcp/cline/ +/mr/ai-suite/subgraph-mcp/cursor/ +/mr/ai-suite/subgraph-mcp/introduction/ +/mr/ai-suite/token-api-mcp/claude/ +/mr/ai-suite/token-api-mcp/cline/ +/mr/ai-suite/token-api-mcp/cursor/ +/mr/ai-suite/token-api-mcp/introduction/ /mr/archived/arbitrum/arbitrum-faq/ /mr/archived/arbitrum/l2-transfer-tools-faq/ /mr/archived/arbitrum/l2-transfer-tools-guide/ @@ -2542,7 +2614,6 @@ /mr/indexing/tooling/graph-node/ /mr/indexing/tooling/graphcast/ /mr/resources/benefits/ -/mr/resources/claude-mcp/ /mr/resources/glossary/ /mr/resources/migration-guides/assemblyscript-migration-guide/ /mr/resources/migration-guides/graphql-validations-migration-guide/ @@ -2590,9 +2661,6 @@ /mr/subgraphs/guides/subgraph-debug-forking/ /mr/subgraphs/guides/subgraph-uncrashable/ /mr/subgraphs/guides/transfer-to-the-graph/ -/mr/subgraphs/mcp/claude/ -/mr/subgraphs/mcp/cline/ -/mr/subgraphs/mcp/cursor/ /mr/subgraphs/querying/best-practices/ /mr/subgraphs/querying/distributed-systems/ /mr/subgraphs/querying/from-an-application/ @@ -2613,10 +2681,6 @@ /mr/substreams/introduction/ /mr/substreams/publishing/ /mr/substreams/quick-start/ -/mr/substreams/sps/faq/ -/mr/substreams/sps/introduction/ -/mr/substreams/sps/triggers/ -/mr/substreams/sps/tutorial/ /mr/supported-networks/ /mr/supported-networks/abstract-testnet/ /mr/supported-networks/abstract/ @@ -2680,6 +2744,7 @@ /mr/supported-networks/holesky/ /mr/supported-networks/hoodi-cl/ /mr/supported-networks/hoodi/ +/mr/supported-networks/injective-evm-testnet/ /mr/supported-networks/injective-mainnet/ /mr/supported-networks/injective-testnet/ /mr/supported-networks/ink-sepolia/ @@ -2786,14 +2851,27 @@ /mr/token-api/evm/get-tokens-evm-by-contract/ /mr/token-api/evm/get-transfers-evm/ /mr/token-api/faq/ -/mr/token-api/mcp/claude/ -/mr/token-api/mcp/cline/ -/mr/token-api/mcp/cursor/ /mr/token-api/monitoring/get-health/ /mr/token-api/monitoring/get-networks/ /mr/token-api/monitoring/get-version/ /mr/token-api/quick-start/ +/mr/token-api/svm/get-balances-svm/ +/mr/token-api/svm/get-swaps-svm/ +/mr/token-api/svm/get-transfers-svm/ /nl/about/ +/nl/ai-suite/ai-introduction/ +/nl/ai-suite/graph-assistant/faq/ +/nl/ai-suite/graph-assistant/how-to-guide/ +/nl/ai-suite/graph-assistant/introduction/ +/nl/ai-suite/graph-assistant/quick-start/ +/nl/ai-suite/subgraph-mcp/claude/ +/nl/ai-suite/subgraph-mcp/cline/ +/nl/ai-suite/subgraph-mcp/cursor/ +/nl/ai-suite/subgraph-mcp/introduction/ +/nl/ai-suite/token-api-mcp/claude/ +/nl/ai-suite/token-api-mcp/cline/ +/nl/ai-suite/token-api-mcp/cursor/ +/nl/ai-suite/token-api-mcp/introduction/ /nl/archived/arbitrum/arbitrum-faq/ /nl/archived/arbitrum/l2-transfer-tools-faq/ /nl/archived/arbitrum/l2-transfer-tools-guide/ @@ -2808,7 +2886,6 @@ /nl/indexing/tooling/graph-node/ /nl/indexing/tooling/graphcast/ /nl/resources/benefits/ -/nl/resources/claude-mcp/ /nl/resources/glossary/ /nl/resources/migration-guides/assemblyscript-migration-guide/ /nl/resources/migration-guides/graphql-validations-migration-guide/ @@ -2856,9 +2933,6 @@ /nl/subgraphs/guides/subgraph-debug-forking/ /nl/subgraphs/guides/subgraph-uncrashable/ /nl/subgraphs/guides/transfer-to-the-graph/ -/nl/subgraphs/mcp/claude/ -/nl/subgraphs/mcp/cline/ -/nl/subgraphs/mcp/cursor/ /nl/subgraphs/querying/best-practices/ /nl/subgraphs/querying/distributed-systems/ /nl/subgraphs/querying/from-an-application/ @@ -2879,10 +2953,6 @@ /nl/substreams/introduction/ /nl/substreams/publishing/ /nl/substreams/quick-start/ -/nl/substreams/sps/faq/ -/nl/substreams/sps/introduction/ -/nl/substreams/sps/triggers/ -/nl/substreams/sps/tutorial/ /nl/supported-networks/ /nl/token-api/evm/get-balances-evm-by-address/ /nl/token-api/evm/get-historical-balances-evm-by-address/ @@ -2900,14 +2970,27 @@ /nl/token-api/evm/get-tokens-evm-by-contract/ /nl/token-api/evm/get-transfers-evm/ /nl/token-api/faq/ -/nl/token-api/mcp/claude/ -/nl/token-api/mcp/cline/ -/nl/token-api/mcp/cursor/ /nl/token-api/monitoring/get-health/ /nl/token-api/monitoring/get-networks/ /nl/token-api/monitoring/get-version/ /nl/token-api/quick-start/ +/nl/token-api/svm/get-balances-svm/ +/nl/token-api/svm/get-swaps-svm/ +/nl/token-api/svm/get-transfers-svm/ /pl/about/ +/pl/ai-suite/ai-introduction/ +/pl/ai-suite/graph-assistant/faq/ +/pl/ai-suite/graph-assistant/how-to-guide/ +/pl/ai-suite/graph-assistant/introduction/ +/pl/ai-suite/graph-assistant/quick-start/ +/pl/ai-suite/subgraph-mcp/claude/ +/pl/ai-suite/subgraph-mcp/cline/ +/pl/ai-suite/subgraph-mcp/cursor/ +/pl/ai-suite/subgraph-mcp/introduction/ +/pl/ai-suite/token-api-mcp/claude/ +/pl/ai-suite/token-api-mcp/cline/ +/pl/ai-suite/token-api-mcp/cursor/ +/pl/ai-suite/token-api-mcp/introduction/ /pl/archived/arbitrum/arbitrum-faq/ /pl/archived/arbitrum/l2-transfer-tools-faq/ /pl/archived/arbitrum/l2-transfer-tools-guide/ @@ -2922,7 +3005,6 @@ /pl/indexing/tooling/graph-node/ /pl/indexing/tooling/graphcast/ /pl/resources/benefits/ -/pl/resources/claude-mcp/ /pl/resources/glossary/ /pl/resources/migration-guides/assemblyscript-migration-guide/ /pl/resources/migration-guides/graphql-validations-migration-guide/ @@ -2970,9 +3052,6 @@ /pl/subgraphs/guides/subgraph-debug-forking/ /pl/subgraphs/guides/subgraph-uncrashable/ /pl/subgraphs/guides/transfer-to-the-graph/ -/pl/subgraphs/mcp/claude/ -/pl/subgraphs/mcp/cline/ -/pl/subgraphs/mcp/cursor/ /pl/subgraphs/querying/best-practices/ /pl/subgraphs/querying/distributed-systems/ /pl/subgraphs/querying/from-an-application/ @@ -2993,10 +3072,6 @@ /pl/substreams/introduction/ /pl/substreams/publishing/ /pl/substreams/quick-start/ -/pl/substreams/sps/faq/ -/pl/substreams/sps/introduction/ -/pl/substreams/sps/triggers/ -/pl/substreams/sps/tutorial/ /pl/supported-networks/ /pl/token-api/evm/get-balances-evm-by-address/ /pl/token-api/evm/get-historical-balances-evm-by-address/ @@ -3014,16 +3089,29 @@ /pl/token-api/evm/get-tokens-evm-by-contract/ /pl/token-api/evm/get-transfers-evm/ /pl/token-api/faq/ -/pl/token-api/mcp/claude/ -/pl/token-api/mcp/cline/ -/pl/token-api/mcp/cursor/ /pl/token-api/monitoring/get-health/ /pl/token-api/monitoring/get-networks/ /pl/token-api/monitoring/get-version/ /pl/token-api/quick-start/ +/pl/token-api/svm/get-balances-svm/ +/pl/token-api/svm/get-swaps-svm/ +/pl/token-api/svm/get-transfers-svm/ /pt/ /pt/404/ /pt/about/ +/pt/ai-suite/ai-introduction/ +/pt/ai-suite/graph-assistant/faq/ +/pt/ai-suite/graph-assistant/how-to-guide/ +/pt/ai-suite/graph-assistant/introduction/ +/pt/ai-suite/graph-assistant/quick-start/ +/pt/ai-suite/subgraph-mcp/claude/ +/pt/ai-suite/subgraph-mcp/cline/ +/pt/ai-suite/subgraph-mcp/cursor/ +/pt/ai-suite/subgraph-mcp/introduction/ +/pt/ai-suite/token-api-mcp/claude/ +/pt/ai-suite/token-api-mcp/cline/ +/pt/ai-suite/token-api-mcp/cursor/ +/pt/ai-suite/token-api-mcp/introduction/ /pt/archived/arbitrum/arbitrum-faq/ /pt/archived/arbitrum/l2-transfer-tools-faq/ /pt/archived/arbitrum/l2-transfer-tools-guide/ @@ -3038,7 +3126,6 @@ /pt/indexing/tooling/graph-node/ /pt/indexing/tooling/graphcast/ /pt/resources/benefits/ -/pt/resources/claude-mcp/ /pt/resources/glossary/ /pt/resources/migration-guides/assemblyscript-migration-guide/ /pt/resources/migration-guides/graphql-validations-migration-guide/ @@ -3086,9 +3173,6 @@ /pt/subgraphs/guides/subgraph-debug-forking/ /pt/subgraphs/guides/subgraph-uncrashable/ /pt/subgraphs/guides/transfer-to-the-graph/ -/pt/subgraphs/mcp/claude/ -/pt/subgraphs/mcp/cline/ -/pt/subgraphs/mcp/cursor/ /pt/subgraphs/querying/best-practices/ /pt/subgraphs/querying/distributed-systems/ /pt/subgraphs/querying/from-an-application/ @@ -3109,10 +3193,6 @@ /pt/substreams/introduction/ /pt/substreams/publishing/ /pt/substreams/quick-start/ -/pt/substreams/sps/faq/ -/pt/substreams/sps/introduction/ -/pt/substreams/sps/triggers/ -/pt/substreams/sps/tutorial/ /pt/supported-networks/ /pt/supported-networks/abstract-testnet/ /pt/supported-networks/abstract/ @@ -3176,6 +3256,7 @@ /pt/supported-networks/holesky/ /pt/supported-networks/hoodi-cl/ /pt/supported-networks/hoodi/ +/pt/supported-networks/injective-evm-testnet/ /pt/supported-networks/injective-mainnet/ /pt/supported-networks/injective-testnet/ /pt/supported-networks/ink-sepolia/ @@ -3282,14 +3363,27 @@ /pt/token-api/evm/get-tokens-evm-by-contract/ /pt/token-api/evm/get-transfers-evm/ /pt/token-api/faq/ -/pt/token-api/mcp/claude/ -/pt/token-api/mcp/cline/ -/pt/token-api/mcp/cursor/ /pt/token-api/monitoring/get-health/ /pt/token-api/monitoring/get-networks/ /pt/token-api/monitoring/get-version/ /pt/token-api/quick-start/ +/pt/token-api/svm/get-balances-svm/ +/pt/token-api/svm/get-swaps-svm/ +/pt/token-api/svm/get-transfers-svm/ /ro/about/ +/ro/ai-suite/ai-introduction/ +/ro/ai-suite/graph-assistant/faq/ +/ro/ai-suite/graph-assistant/how-to-guide/ +/ro/ai-suite/graph-assistant/introduction/ +/ro/ai-suite/graph-assistant/quick-start/ +/ro/ai-suite/subgraph-mcp/claude/ +/ro/ai-suite/subgraph-mcp/cline/ +/ro/ai-suite/subgraph-mcp/cursor/ +/ro/ai-suite/subgraph-mcp/introduction/ +/ro/ai-suite/token-api-mcp/claude/ +/ro/ai-suite/token-api-mcp/cline/ +/ro/ai-suite/token-api-mcp/cursor/ +/ro/ai-suite/token-api-mcp/introduction/ /ro/archived/arbitrum/arbitrum-faq/ /ro/archived/arbitrum/l2-transfer-tools-faq/ /ro/archived/arbitrum/l2-transfer-tools-guide/ @@ -3304,7 +3398,6 @@ /ro/indexing/tooling/graph-node/ /ro/indexing/tooling/graphcast/ /ro/resources/benefits/ -/ro/resources/claude-mcp/ /ro/resources/glossary/ /ro/resources/migration-guides/assemblyscript-migration-guide/ /ro/resources/migration-guides/graphql-validations-migration-guide/ @@ -3352,9 +3445,6 @@ /ro/subgraphs/guides/subgraph-debug-forking/ /ro/subgraphs/guides/subgraph-uncrashable/ /ro/subgraphs/guides/transfer-to-the-graph/ -/ro/subgraphs/mcp/claude/ -/ro/subgraphs/mcp/cline/ -/ro/subgraphs/mcp/cursor/ /ro/subgraphs/querying/best-practices/ /ro/subgraphs/querying/distributed-systems/ /ro/subgraphs/querying/from-an-application/ @@ -3375,10 +3465,6 @@ /ro/substreams/introduction/ /ro/substreams/publishing/ /ro/substreams/quick-start/ -/ro/substreams/sps/faq/ -/ro/substreams/sps/introduction/ -/ro/substreams/sps/triggers/ -/ro/substreams/sps/tutorial/ /ro/supported-networks/ /ro/token-api/evm/get-balances-evm-by-address/ /ro/token-api/evm/get-historical-balances-evm-by-address/ @@ -3396,16 +3482,29 @@ /ro/token-api/evm/get-tokens-evm-by-contract/ /ro/token-api/evm/get-transfers-evm/ /ro/token-api/faq/ -/ro/token-api/mcp/claude/ -/ro/token-api/mcp/cline/ -/ro/token-api/mcp/cursor/ /ro/token-api/monitoring/get-health/ /ro/token-api/monitoring/get-networks/ /ro/token-api/monitoring/get-version/ /ro/token-api/quick-start/ +/ro/token-api/svm/get-balances-svm/ +/ro/token-api/svm/get-swaps-svm/ +/ro/token-api/svm/get-transfers-svm/ /ru/ /ru/404/ /ru/about/ +/ru/ai-suite/ai-introduction/ +/ru/ai-suite/graph-assistant/faq/ +/ru/ai-suite/graph-assistant/how-to-guide/ +/ru/ai-suite/graph-assistant/introduction/ +/ru/ai-suite/graph-assistant/quick-start/ +/ru/ai-suite/subgraph-mcp/claude/ +/ru/ai-suite/subgraph-mcp/cline/ +/ru/ai-suite/subgraph-mcp/cursor/ +/ru/ai-suite/subgraph-mcp/introduction/ +/ru/ai-suite/token-api-mcp/claude/ +/ru/ai-suite/token-api-mcp/cline/ +/ru/ai-suite/token-api-mcp/cursor/ +/ru/ai-suite/token-api-mcp/introduction/ /ru/archived/arbitrum/arbitrum-faq/ /ru/archived/arbitrum/l2-transfer-tools-faq/ /ru/archived/arbitrum/l2-transfer-tools-guide/ @@ -3420,7 +3519,6 @@ /ru/indexing/tooling/graph-node/ /ru/indexing/tooling/graphcast/ /ru/resources/benefits/ -/ru/resources/claude-mcp/ /ru/resources/glossary/ /ru/resources/migration-guides/assemblyscript-migration-guide/ /ru/resources/migration-guides/graphql-validations-migration-guide/ @@ -3468,9 +3566,6 @@ /ru/subgraphs/guides/subgraph-debug-forking/ /ru/subgraphs/guides/subgraph-uncrashable/ /ru/subgraphs/guides/transfer-to-the-graph/ -/ru/subgraphs/mcp/claude/ -/ru/subgraphs/mcp/cline/ -/ru/subgraphs/mcp/cursor/ /ru/subgraphs/querying/best-practices/ /ru/subgraphs/querying/distributed-systems/ /ru/subgraphs/querying/from-an-application/ @@ -3491,10 +3586,6 @@ /ru/substreams/introduction/ /ru/substreams/publishing/ /ru/substreams/quick-start/ -/ru/substreams/sps/faq/ -/ru/substreams/sps/introduction/ -/ru/substreams/sps/triggers/ -/ru/substreams/sps/tutorial/ /ru/supported-networks/ /ru/supported-networks/abstract-testnet/ /ru/supported-networks/abstract/ @@ -3558,6 +3649,7 @@ /ru/supported-networks/holesky/ /ru/supported-networks/hoodi-cl/ /ru/supported-networks/hoodi/ +/ru/supported-networks/injective-evm-testnet/ /ru/supported-networks/injective-mainnet/ /ru/supported-networks/injective-testnet/ /ru/supported-networks/ink-sepolia/ @@ -3664,16 +3756,29 @@ /ru/token-api/evm/get-tokens-evm-by-contract/ /ru/token-api/evm/get-transfers-evm/ /ru/token-api/faq/ -/ru/token-api/mcp/claude/ -/ru/token-api/mcp/cline/ -/ru/token-api/mcp/cursor/ /ru/token-api/monitoring/get-health/ /ru/token-api/monitoring/get-networks/ /ru/token-api/monitoring/get-version/ /ru/token-api/quick-start/ +/ru/token-api/svm/get-balances-svm/ +/ru/token-api/svm/get-swaps-svm/ +/ru/token-api/svm/get-transfers-svm/ /sv/ /sv/404/ /sv/about/ +/sv/ai-suite/ai-introduction/ +/sv/ai-suite/graph-assistant/faq/ +/sv/ai-suite/graph-assistant/how-to-guide/ +/sv/ai-suite/graph-assistant/introduction/ +/sv/ai-suite/graph-assistant/quick-start/ +/sv/ai-suite/subgraph-mcp/claude/ +/sv/ai-suite/subgraph-mcp/cline/ +/sv/ai-suite/subgraph-mcp/cursor/ +/sv/ai-suite/subgraph-mcp/introduction/ +/sv/ai-suite/token-api-mcp/claude/ +/sv/ai-suite/token-api-mcp/cline/ +/sv/ai-suite/token-api-mcp/cursor/ +/sv/ai-suite/token-api-mcp/introduction/ /sv/archived/arbitrum/arbitrum-faq/ /sv/archived/arbitrum/l2-transfer-tools-faq/ /sv/archived/arbitrum/l2-transfer-tools-guide/ @@ -3688,7 +3793,6 @@ /sv/indexing/tooling/graph-node/ /sv/indexing/tooling/graphcast/ /sv/resources/benefits/ -/sv/resources/claude-mcp/ /sv/resources/glossary/ /sv/resources/migration-guides/assemblyscript-migration-guide/ /sv/resources/migration-guides/graphql-validations-migration-guide/ @@ -3736,9 +3840,6 @@ /sv/subgraphs/guides/subgraph-debug-forking/ /sv/subgraphs/guides/subgraph-uncrashable/ /sv/subgraphs/guides/transfer-to-the-graph/ -/sv/subgraphs/mcp/claude/ -/sv/subgraphs/mcp/cline/ -/sv/subgraphs/mcp/cursor/ /sv/subgraphs/querying/best-practices/ /sv/subgraphs/querying/distributed-systems/ /sv/subgraphs/querying/from-an-application/ @@ -3759,10 +3860,6 @@ /sv/substreams/introduction/ /sv/substreams/publishing/ /sv/substreams/quick-start/ -/sv/substreams/sps/faq/ -/sv/substreams/sps/introduction/ -/sv/substreams/sps/triggers/ -/sv/substreams/sps/tutorial/ /sv/supported-networks/ /sv/supported-networks/abstract-testnet/ /sv/supported-networks/abstract/ @@ -3826,6 +3923,7 @@ /sv/supported-networks/holesky/ /sv/supported-networks/hoodi-cl/ /sv/supported-networks/hoodi/ +/sv/supported-networks/injective-evm-testnet/ /sv/supported-networks/injective-mainnet/ /sv/supported-networks/injective-testnet/ /sv/supported-networks/ink-sepolia/ @@ -3932,16 +4030,29 @@ /sv/token-api/evm/get-tokens-evm-by-contract/ /sv/token-api/evm/get-transfers-evm/ /sv/token-api/faq/ -/sv/token-api/mcp/claude/ -/sv/token-api/mcp/cline/ -/sv/token-api/mcp/cursor/ /sv/token-api/monitoring/get-health/ /sv/token-api/monitoring/get-networks/ /sv/token-api/monitoring/get-version/ /sv/token-api/quick-start/ +/sv/token-api/svm/get-balances-svm/ +/sv/token-api/svm/get-swaps-svm/ +/sv/token-api/svm/get-transfers-svm/ /tr/ /tr/404/ /tr/about/ +/tr/ai-suite/ai-introduction/ +/tr/ai-suite/graph-assistant/faq/ +/tr/ai-suite/graph-assistant/how-to-guide/ +/tr/ai-suite/graph-assistant/introduction/ +/tr/ai-suite/graph-assistant/quick-start/ +/tr/ai-suite/subgraph-mcp/claude/ +/tr/ai-suite/subgraph-mcp/cline/ +/tr/ai-suite/subgraph-mcp/cursor/ +/tr/ai-suite/subgraph-mcp/introduction/ +/tr/ai-suite/token-api-mcp/claude/ +/tr/ai-suite/token-api-mcp/cline/ +/tr/ai-suite/token-api-mcp/cursor/ +/tr/ai-suite/token-api-mcp/introduction/ /tr/archived/arbitrum/arbitrum-faq/ /tr/archived/arbitrum/l2-transfer-tools-faq/ /tr/archived/arbitrum/l2-transfer-tools-guide/ @@ -3956,7 +4067,6 @@ /tr/indexing/tooling/graph-node/ /tr/indexing/tooling/graphcast/ /tr/resources/benefits/ -/tr/resources/claude-mcp/ /tr/resources/glossary/ /tr/resources/migration-guides/assemblyscript-migration-guide/ /tr/resources/migration-guides/graphql-validations-migration-guide/ @@ -4004,9 +4114,6 @@ /tr/subgraphs/guides/subgraph-debug-forking/ /tr/subgraphs/guides/subgraph-uncrashable/ /tr/subgraphs/guides/transfer-to-the-graph/ -/tr/subgraphs/mcp/claude/ -/tr/subgraphs/mcp/cline/ -/tr/subgraphs/mcp/cursor/ /tr/subgraphs/querying/best-practices/ /tr/subgraphs/querying/distributed-systems/ /tr/subgraphs/querying/from-an-application/ @@ -4027,10 +4134,6 @@ /tr/substreams/introduction/ /tr/substreams/publishing/ /tr/substreams/quick-start/ -/tr/substreams/sps/faq/ -/tr/substreams/sps/introduction/ -/tr/substreams/sps/triggers/ -/tr/substreams/sps/tutorial/ /tr/supported-networks/ /tr/supported-networks/abstract-testnet/ /tr/supported-networks/abstract/ @@ -4094,6 +4197,7 @@ /tr/supported-networks/holesky/ /tr/supported-networks/hoodi-cl/ /tr/supported-networks/hoodi/ +/tr/supported-networks/injective-evm-testnet/ /tr/supported-networks/injective-mainnet/ /tr/supported-networks/injective-testnet/ /tr/supported-networks/ink-sepolia/ @@ -4200,14 +4304,27 @@ /tr/token-api/evm/get-tokens-evm-by-contract/ /tr/token-api/evm/get-transfers-evm/ /tr/token-api/faq/ -/tr/token-api/mcp/claude/ -/tr/token-api/mcp/cline/ -/tr/token-api/mcp/cursor/ /tr/token-api/monitoring/get-health/ /tr/token-api/monitoring/get-networks/ /tr/token-api/monitoring/get-version/ /tr/token-api/quick-start/ +/tr/token-api/svm/get-balances-svm/ +/tr/token-api/svm/get-swaps-svm/ +/tr/token-api/svm/get-transfers-svm/ /uk/about/ +/uk/ai-suite/ai-introduction/ +/uk/ai-suite/graph-assistant/faq/ +/uk/ai-suite/graph-assistant/how-to-guide/ +/uk/ai-suite/graph-assistant/introduction/ +/uk/ai-suite/graph-assistant/quick-start/ +/uk/ai-suite/subgraph-mcp/claude/ +/uk/ai-suite/subgraph-mcp/cline/ +/uk/ai-suite/subgraph-mcp/cursor/ +/uk/ai-suite/subgraph-mcp/introduction/ +/uk/ai-suite/token-api-mcp/claude/ +/uk/ai-suite/token-api-mcp/cline/ +/uk/ai-suite/token-api-mcp/cursor/ +/uk/ai-suite/token-api-mcp/introduction/ /uk/archived/arbitrum/arbitrum-faq/ /uk/archived/arbitrum/l2-transfer-tools-faq/ /uk/archived/arbitrum/l2-transfer-tools-guide/ @@ -4222,7 +4339,6 @@ /uk/indexing/tooling/graph-node/ /uk/indexing/tooling/graphcast/ /uk/resources/benefits/ -/uk/resources/claude-mcp/ /uk/resources/glossary/ /uk/resources/migration-guides/assemblyscript-migration-guide/ /uk/resources/migration-guides/graphql-validations-migration-guide/ @@ -4270,9 +4386,6 @@ /uk/subgraphs/guides/subgraph-debug-forking/ /uk/subgraphs/guides/subgraph-uncrashable/ /uk/subgraphs/guides/transfer-to-the-graph/ -/uk/subgraphs/mcp/claude/ -/uk/subgraphs/mcp/cline/ -/uk/subgraphs/mcp/cursor/ /uk/subgraphs/querying/best-practices/ /uk/subgraphs/querying/distributed-systems/ /uk/subgraphs/querying/from-an-application/ @@ -4293,10 +4406,6 @@ /uk/substreams/introduction/ /uk/substreams/publishing/ /uk/substreams/quick-start/ -/uk/substreams/sps/faq/ -/uk/substreams/sps/introduction/ -/uk/substreams/sps/triggers/ -/uk/substreams/sps/tutorial/ /uk/supported-networks/ /uk/token-api/evm/get-balances-evm-by-address/ /uk/token-api/evm/get-historical-balances-evm-by-address/ @@ -4314,16 +4423,29 @@ /uk/token-api/evm/get-tokens-evm-by-contract/ /uk/token-api/evm/get-transfers-evm/ /uk/token-api/faq/ -/uk/token-api/mcp/claude/ -/uk/token-api/mcp/cline/ -/uk/token-api/mcp/cursor/ /uk/token-api/monitoring/get-health/ /uk/token-api/monitoring/get-networks/ /uk/token-api/monitoring/get-version/ /uk/token-api/quick-start/ +/uk/token-api/svm/get-balances-svm/ +/uk/token-api/svm/get-swaps-svm/ +/uk/token-api/svm/get-transfers-svm/ /ur/ /ur/404/ /ur/about/ +/ur/ai-suite/ai-introduction/ +/ur/ai-suite/graph-assistant/faq/ +/ur/ai-suite/graph-assistant/how-to-guide/ +/ur/ai-suite/graph-assistant/introduction/ +/ur/ai-suite/graph-assistant/quick-start/ +/ur/ai-suite/subgraph-mcp/claude/ +/ur/ai-suite/subgraph-mcp/cline/ +/ur/ai-suite/subgraph-mcp/cursor/ +/ur/ai-suite/subgraph-mcp/introduction/ +/ur/ai-suite/token-api-mcp/claude/ +/ur/ai-suite/token-api-mcp/cline/ +/ur/ai-suite/token-api-mcp/cursor/ +/ur/ai-suite/token-api-mcp/introduction/ /ur/archived/arbitrum/arbitrum-faq/ /ur/archived/arbitrum/l2-transfer-tools-faq/ /ur/archived/arbitrum/l2-transfer-tools-guide/ @@ -4338,7 +4460,6 @@ /ur/indexing/tooling/graph-node/ /ur/indexing/tooling/graphcast/ /ur/resources/benefits/ -/ur/resources/claude-mcp/ /ur/resources/glossary/ /ur/resources/migration-guides/assemblyscript-migration-guide/ /ur/resources/migration-guides/graphql-validations-migration-guide/ @@ -4386,9 +4507,6 @@ /ur/subgraphs/guides/subgraph-debug-forking/ /ur/subgraphs/guides/subgraph-uncrashable/ /ur/subgraphs/guides/transfer-to-the-graph/ -/ur/subgraphs/mcp/claude/ -/ur/subgraphs/mcp/cline/ -/ur/subgraphs/mcp/cursor/ /ur/subgraphs/querying/best-practices/ /ur/subgraphs/querying/distributed-systems/ /ur/subgraphs/querying/from-an-application/ @@ -4409,10 +4527,6 @@ /ur/substreams/introduction/ /ur/substreams/publishing/ /ur/substreams/quick-start/ -/ur/substreams/sps/faq/ -/ur/substreams/sps/introduction/ -/ur/substreams/sps/triggers/ -/ur/substreams/sps/tutorial/ /ur/supported-networks/ /ur/supported-networks/abstract-testnet/ /ur/supported-networks/abstract/ @@ -4476,6 +4590,7 @@ /ur/supported-networks/holesky/ /ur/supported-networks/hoodi-cl/ /ur/supported-networks/hoodi/ +/ur/supported-networks/injective-evm-testnet/ /ur/supported-networks/injective-mainnet/ /ur/supported-networks/injective-testnet/ /ur/supported-networks/ink-sepolia/ @@ -4582,14 +4697,27 @@ /ur/token-api/evm/get-tokens-evm-by-contract/ /ur/token-api/evm/get-transfers-evm/ /ur/token-api/faq/ -/ur/token-api/mcp/claude/ -/ur/token-api/mcp/cline/ -/ur/token-api/mcp/cursor/ /ur/token-api/monitoring/get-health/ /ur/token-api/monitoring/get-networks/ /ur/token-api/monitoring/get-version/ /ur/token-api/quick-start/ +/ur/token-api/svm/get-balances-svm/ +/ur/token-api/svm/get-swaps-svm/ +/ur/token-api/svm/get-transfers-svm/ /vi/about/ +/vi/ai-suite/ai-introduction/ +/vi/ai-suite/graph-assistant/faq/ +/vi/ai-suite/graph-assistant/how-to-guide/ +/vi/ai-suite/graph-assistant/introduction/ +/vi/ai-suite/graph-assistant/quick-start/ +/vi/ai-suite/subgraph-mcp/claude/ +/vi/ai-suite/subgraph-mcp/cline/ +/vi/ai-suite/subgraph-mcp/cursor/ +/vi/ai-suite/subgraph-mcp/introduction/ +/vi/ai-suite/token-api-mcp/claude/ +/vi/ai-suite/token-api-mcp/cline/ +/vi/ai-suite/token-api-mcp/cursor/ +/vi/ai-suite/token-api-mcp/introduction/ /vi/archived/arbitrum/arbitrum-faq/ /vi/archived/arbitrum/l2-transfer-tools-faq/ /vi/archived/arbitrum/l2-transfer-tools-guide/ @@ -4604,7 +4732,6 @@ /vi/indexing/tooling/graph-node/ /vi/indexing/tooling/graphcast/ /vi/resources/benefits/ -/vi/resources/claude-mcp/ /vi/resources/glossary/ /vi/resources/migration-guides/assemblyscript-migration-guide/ /vi/resources/migration-guides/graphql-validations-migration-guide/ @@ -4652,9 +4779,6 @@ /vi/subgraphs/guides/subgraph-debug-forking/ /vi/subgraphs/guides/subgraph-uncrashable/ /vi/subgraphs/guides/transfer-to-the-graph/ -/vi/subgraphs/mcp/claude/ -/vi/subgraphs/mcp/cline/ -/vi/subgraphs/mcp/cursor/ /vi/subgraphs/querying/best-practices/ /vi/subgraphs/querying/distributed-systems/ /vi/subgraphs/querying/from-an-application/ @@ -4675,10 +4799,6 @@ /vi/substreams/introduction/ /vi/substreams/publishing/ /vi/substreams/quick-start/ -/vi/substreams/sps/faq/ -/vi/substreams/sps/introduction/ -/vi/substreams/sps/triggers/ -/vi/substreams/sps/tutorial/ /vi/supported-networks/ /vi/token-api/evm/get-balances-evm-by-address/ /vi/token-api/evm/get-historical-balances-evm-by-address/ @@ -4696,16 +4816,29 @@ /vi/token-api/evm/get-tokens-evm-by-contract/ /vi/token-api/evm/get-transfers-evm/ /vi/token-api/faq/ -/vi/token-api/mcp/claude/ -/vi/token-api/mcp/cline/ -/vi/token-api/mcp/cursor/ /vi/token-api/monitoring/get-health/ /vi/token-api/monitoring/get-networks/ /vi/token-api/monitoring/get-version/ /vi/token-api/quick-start/ +/vi/token-api/svm/get-balances-svm/ +/vi/token-api/svm/get-swaps-svm/ +/vi/token-api/svm/get-transfers-svm/ /zh/ /zh/404/ /zh/about/ +/zh/ai-suite/ai-introduction/ +/zh/ai-suite/graph-assistant/faq/ +/zh/ai-suite/graph-assistant/how-to-guide/ +/zh/ai-suite/graph-assistant/introduction/ +/zh/ai-suite/graph-assistant/quick-start/ +/zh/ai-suite/subgraph-mcp/claude/ +/zh/ai-suite/subgraph-mcp/cline/ +/zh/ai-suite/subgraph-mcp/cursor/ +/zh/ai-suite/subgraph-mcp/introduction/ +/zh/ai-suite/token-api-mcp/claude/ +/zh/ai-suite/token-api-mcp/cline/ +/zh/ai-suite/token-api-mcp/cursor/ +/zh/ai-suite/token-api-mcp/introduction/ /zh/archived/arbitrum/arbitrum-faq/ /zh/archived/arbitrum/l2-transfer-tools-faq/ /zh/archived/arbitrum/l2-transfer-tools-guide/ @@ -4720,7 +4853,6 @@ /zh/indexing/tooling/graph-node/ /zh/indexing/tooling/graphcast/ /zh/resources/benefits/ -/zh/resources/claude-mcp/ /zh/resources/glossary/ /zh/resources/migration-guides/assemblyscript-migration-guide/ /zh/resources/migration-guides/graphql-validations-migration-guide/ @@ -4768,9 +4900,6 @@ /zh/subgraphs/guides/subgraph-debug-forking/ /zh/subgraphs/guides/subgraph-uncrashable/ /zh/subgraphs/guides/transfer-to-the-graph/ -/zh/subgraphs/mcp/claude/ -/zh/subgraphs/mcp/cline/ -/zh/subgraphs/mcp/cursor/ /zh/subgraphs/querying/best-practices/ /zh/subgraphs/querying/distributed-systems/ /zh/subgraphs/querying/from-an-application/ @@ -4791,10 +4920,6 @@ /zh/substreams/introduction/ /zh/substreams/publishing/ /zh/substreams/quick-start/ -/zh/substreams/sps/faq/ -/zh/substreams/sps/introduction/ -/zh/substreams/sps/triggers/ -/zh/substreams/sps/tutorial/ /zh/supported-networks/ /zh/supported-networks/abstract-testnet/ /zh/supported-networks/abstract/ @@ -4814,8 +4939,6 @@ /zh/supported-networks/berachain/ /zh/supported-networks/blast-mainnet/ /zh/supported-networks/blast-testnet/ -/zh/supported-networks/bnb-op/ -/zh/supported-networks/bnb-svm/ /zh/supported-networks/boba-bnb/ /zh/supported-networks/boba-testnet/ /zh/supported-networks/boba/ @@ -4841,113 +4964,18 @@ /zh/supported-networks/fantom/ /zh/supported-networks/fraxtal/ /zh/supported-networks/fuji/ -/zh/supported-networks/fuse-testnet/ /zh/supported-networks/fuse/ -/zh/supported-networks/gnosis-chiado-cl/ -/zh/supported-networks/gnosis-chiado/ -/zh/supported-networks/gnosis-cl/ -/zh/supported-networks/gnosis/ -/zh/supported-networks/gravity-mainnet/ -/zh/supported-networks/gravity-testnet/ -/zh/supported-networks/harmony/ -/zh/supported-networks/hashkeychain-sepolia/ -/zh/supported-networks/hashkeychain/ -/zh/supported-networks/hemi-sepolia/ -/zh/supported-networks/hemi/ /zh/supported-networks/holesky-cl/ /zh/supported-networks/holesky/ /zh/supported-networks/hoodi-cl/ /zh/supported-networks/hoodi/ -/zh/supported-networks/injective-mainnet/ -/zh/supported-networks/injective-testnet/ -/zh/supported-networks/ink-sepolia/ -/zh/supported-networks/ink/ -/zh/supported-networks/iotex-testnet/ -/zh/supported-networks/iotex/ -/zh/supported-networks/joc-testnet/ -/zh/supported-networks/joc/ /zh/supported-networks/jungle4-evm/ /zh/supported-networks/jungle4/ -/zh/supported-networks/kaia-testnet/ -/zh/supported-networks/kaia/ -/zh/supported-networks/katana-tatara/ -/zh/supported-networks/katana/ /zh/supported-networks/kylin/ -/zh/supported-networks/lens-testnet/ -/zh/supported-networks/lens/ -/zh/supported-networks/linea-sepolia/ -/zh/supported-networks/linea/ -/zh/supported-networks/litecoin/ -/zh/supported-networks/lumia/ /zh/supported-networks/mainnet-cl/ /zh/supported-networks/mainnet/ -/zh/supported-networks/manta/ -/zh/supported-networks/mantra-mainnet/ -/zh/supported-networks/mantra-testnet/ -/zh/supported-networks/matic/ -/zh/supported-networks/mbase/ -/zh/supported-networks/megaeth-testnet/ -/zh/supported-networks/metis/ -/zh/supported-networks/mint-sepolia/ -/zh/supported-networks/mint/ -/zh/supported-networks/mode-mainnet/ -/zh/supported-networks/mode-sepolia/ -/zh/supported-networks/monad-testnet/ -/zh/supported-networks/moonbeam/ -/zh/supported-networks/moonriver/ -/zh/supported-networks/near-mainnet/ -/zh/supported-networks/near-testnet/ -/zh/supported-networks/neox-testnet/ -/zh/supported-networks/neox/ -/zh/supported-networks/optimism-sepolia/ -/zh/supported-networks/optimism/ -/zh/supported-networks/ozean-poseidon/ -/zh/supported-networks/peaq/ -/zh/supported-networks/polygon-amoy/ -/zh/supported-networks/polygon-zkevm-cardona/ -/zh/supported-networks/polygon-zkevm/ -/zh/supported-networks/ronin/ -/zh/supported-networks/rootstock-testnet/ -/zh/supported-networks/rootstock/ -/zh/supported-networks/scroll-sepolia/ -/zh/supported-networks/scroll/ -/zh/supported-networks/sei-atlantic/ -/zh/supported-networks/sei-mainnet/ /zh/supported-networks/sepolia-cl/ /zh/supported-networks/sepolia/ -/zh/supported-networks/solana-accounts/ -/zh/supported-networks/solana-devnet/ -/zh/supported-networks/solana-mainnet-beta/ -/zh/supported-networks/soneium-testnet/ -/zh/supported-networks/soneium/ -/zh/supported-networks/sonic/ -/zh/supported-networks/starknet-mainnet/ -/zh/supported-networks/starknet-testnet/ -/zh/supported-networks/status-sepolia/ -/zh/supported-networks/stellar-testnet/ -/zh/supported-networks/stellar/ -/zh/supported-networks/swellchain-sepolia/ -/zh/supported-networks/swellchain/ -/zh/supported-networks/telos-testnet/ -/zh/supported-networks/telos/ -/zh/supported-networks/tron-evm/ -/zh/supported-networks/tron/ -/zh/supported-networks/ultra/ -/zh/supported-networks/unichain-testnet/ -/zh/supported-networks/unichain/ -/zh/supported-networks/vana-moksha/ -/zh/supported-networks/vana/ -/zh/supported-networks/viction/ -/zh/supported-networks/wax-testnet/ -/zh/supported-networks/wax/ -/zh/supported-networks/xai/ -/zh/supported-networks/xlayer-mainnet/ -/zh/supported-networks/xlayer-sepolia/ -/zh/supported-networks/zetachain/ -/zh/supported-networks/zilliqa-protomainnet/ -/zh/supported-networks/zksync-era-sepolia/ -/zh/supported-networks/zksync-era/ -/zh/supported-networks/zora/ /zh/token-api/evm/get-balances-evm-by-address/ /zh/token-api/evm/get-historical-balances-evm-by-address/ /zh/token-api/evm/get-holders-evm-by-contract/ @@ -4964,10 +4992,10 @@ /zh/token-api/evm/get-tokens-evm-by-contract/ /zh/token-api/evm/get-transfers-evm/ /zh/token-api/faq/ -/zh/token-api/mcp/claude/ -/zh/token-api/mcp/cline/ -/zh/token-api/mcp/cursor/ /zh/token-api/monitoring/get-health/ /zh/token-api/monitoring/get-networks/ /zh/token-api/monitoring/get-version/ /zh/token-api/quick-start/ +/zh/token-api/svm/get-balances-svm/ +/zh/token-api/svm/get-swaps-svm/ +/zh/token-api/svm/get-transfers-svm/ diff --git a/website/src/openApi/index.ts b/website/src/openApi/index.ts index a8390f7a3aed..313aa37d7817 100644 --- a/website/src/openApi/index.ts +++ b/website/src/openApi/index.ts @@ -14,6 +14,7 @@ export const APIS = { document: tokenApi as OpenAPIV3_1.Document, sections: { EVM: '/token-api/evm', + SVM: '/token-api/svm', Monitoring: '/token-api/monitoring', }, }, diff --git a/website/src/openApi/tokenApi.json b/website/src/openApi/tokenApi.json index 7d8e4acab7bf..6a2d8a11ecab 100644 --- a/website/src/openApi/tokenApi.json +++ b/website/src/openApi/tokenApi.json @@ -3,7 +3,7 @@ "info": { "title": "Token API (Beta)", "description": "Power your apps & AI agents with real-time token data.", - "version": "1.6.2+a82a86b (2025-06-05)" + "version": "2.2.6+153a17c (2025-07-10)" }, "servers": [ { @@ -87,7 +87,7 @@ "optimism", "unichain" ], - "description": "The Graph Network ID https://thegraph.com/networks", + "description": "The Graph Network ID for EVM networks https://thegraph.com/networks", "example": "mainnet" } }, @@ -167,7 +167,7 @@ "optimism", "unichain" ], - "description": "The Graph Network ID https://thegraph.com/networks", + "description": "The Graph Network ID for EVM networks https://thegraph.com/networks", "example": "mainnet" } }, @@ -270,7 +270,7 @@ "optimism", "unichain" ], - "description": "The Graph Network ID https://thegraph.com/networks", + "description": "The Graph Network ID for EVM networks https://thegraph.com/networks", "example": "mainnet" } }, @@ -359,7 +359,7 @@ "optimism", "unichain" ], - "description": "The Graph Network ID https://thegraph.com/networks", + "description": "The Graph Network ID for EVM networks https://thegraph.com/networks", "example": "mainnet" } } @@ -452,7 +452,7 @@ "optimism", "unichain" ], - "description": "The Graph Network ID https://thegraph.com/networks", + "description": "The Graph Network ID for EVM networks https://thegraph.com/networks", "example": "mainnet" } }, @@ -567,7 +567,7 @@ "optimism", "unichain" ], - "description": "The Graph Network ID https://thegraph.com/networks", + "description": "The Graph Network ID for EVM networks https://thegraph.com/networks", "example": "mainnet" } } @@ -724,7 +724,7 @@ "optimism", "unichain" ], - "description": "The Graph Network ID https://thegraph.com/networks", + "description": "The Graph Network ID for EVM networks https://thegraph.com/networks", "example": "mainnet" }, "required": false @@ -897,7 +897,7 @@ "optimism", "unichain" ], - "description": "The Graph Network ID https://thegraph.com/networks", + "description": "The Graph Network ID for EVM networks https://thegraph.com/networks", "example": "mainnet" } }, @@ -977,7 +977,7 @@ "optimism", "unichain" ], - "description": "The Graph Network ID https://thegraph.com/networks", + "description": "The Graph Network ID for EVM networks https://thegraph.com/networks", "example": "mainnet" } } @@ -1117,7 +1117,7 @@ "optimism", "unichain" ], - "description": "The Graph Network ID https://thegraph.com/networks", + "description": "The Graph Network ID for EVM networks https://thegraph.com/networks", "example": "mainnet" }, "required": false @@ -1297,7 +1297,7 @@ "optimism", "unichain" ], - "description": "The Graph Network ID https://thegraph.com/networks", + "description": "The Graph Network ID for EVM networks https://thegraph.com/networks", "example": "mainnet" }, "symbol": { @@ -1394,7 +1394,7 @@ "optimism", "unichain" ], - "description": "The Graph Network ID https://thegraph.com/networks", + "description": "The Graph Network ID for EVM networks https://thegraph.com/networks", "example": "mainnet" } }, @@ -1436,6 +1436,192 @@ ] } }, + "/balances/svm": { + "get": { + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "block_num": { + "type": "number" + }, + "datetime": { + "type": "string" + }, + "timestamp": { + "type": "number" + }, + "program_id": { + "type": "string", + "description": "Filter by address" + }, + "token_account": { + "type": "string", + "description": "Filter by address" + }, + "mint": { + "type": "string", + "description": "Filter by address" + }, + "amount": { + "type": "string" + }, + "value": { + "type": "number" + }, + "decimals": { + "type": "number" + }, + "network_id": { + "type": "string", + "enum": [ + "solana" + ], + "description": "The Graph Network ID for SVM networks https://thegraph.com/networks", + "example": "solana" + } + }, + "required": [ + "block_num", + "datetime", + "timestamp", + "program_id", + "token_account", + "mint", + "amount", + "value", + "decimals", + "network_id" + ] + } + }, + "statistics": { + "type": "object", + "properties": { + "elapsed": { + "type": "number" + }, + "rows_read": { + "type": "number" + }, + "bytes_read": { + "type": "number" + } + } + } + }, + "required": [ + "data" + ] + }, + "example": { + "data": [ + { + "block_num": 352305913, + "datetime": "2025-07-10 05:14:43", + "timestamp": 1752124483, + "program_id": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "token_account": "4ct7br2vTPzfdmY3S5HLtTxcGSBfn6pnw98hsS6v359A", + "mint": "So11111111111111111111111111111111111111112", + "amount": "30697740781078", + "value": 30697.740781078, + "decimals": 9, + "network_id": "solana" + } + ] + } + } + } + } + }, + "operationId": "getBalancesSvm", + "tags": [ + "SVM" + ], + "parameters": [ + { + "in": "query", + "name": "token_account", + "schema": { + "type": "string", + "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$", + "description": "Filter by token account address" + } + }, + { + "in": "query", + "name": "mint", + "schema": { + "type": "string", + "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$", + "description": "Filter by mint address", + "example": "So11111111111111111111111111111111111111112" + } + }, + { + "in": "query", + "name": "program_id", + "schema": { + "type": "string", + "enum": [ + "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb", + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" + ], + "description": "Filter by program ID" + } + }, + { + "in": "query", + "name": "network_id", + "schema": { + "type": "string", + "enum": [ + "solana" + ], + "description": "The Graph Network ID for SVM networks https://thegraph.com/networks", + "example": "solana" + } + }, + { + "in": "query", + "name": "limit", + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 1000, + "default": 10, + "description": "The maximum number of items returned in a single request." + } + }, + { + "in": "query", + "name": "page", + "schema": { + "type": "integer", + "minimum": 1, + "default": 1, + "description": "The page number of the results to return." + } + } + ], + "summary": "Balances", + "description": "Provides Solana SPL tokens balances by token account address.", + "security": [ + { + "bearerAuth": [] + } + ] + } + }, "/transfers/evm": { "get": { "responses": { @@ -1493,7 +1679,7 @@ "optimism", "unichain" ], - "description": "The Graph Network ID https://thegraph.com/networks", + "description": "The Graph Network ID for EVM networks https://thegraph.com/networks", "example": "mainnet" }, "symbol": { @@ -1576,7 +1762,7 @@ "optimism", "unichain" ], - "description": "The Graph Network ID https://thegraph.com/networks", + "description": "The Graph Network ID for EVM networks https://thegraph.com/networks", "example": "mainnet" } }, @@ -1691,7 +1877,7 @@ ] } }, - "/tokens/evm/{contract}": { + "/transfers/svm": { "get": { "responses": { "200": { @@ -1712,69 +1898,67 @@ "datetime": { "type": "string" }, - "address": { - "type": "string", - "description": "Filter by address" + "timestamp": { + "type": "number" }, - "circulating_supply": { + "signature": { "type": "string" }, - "holders": { - "type": "number" + "program_id": { + "type": "string", + "description": "Filter by address" }, - "network_id": { + "mint": { "type": "string", - "enum": [ - "arbitrum-one", - "avalanche", - "base", - "bsc", - "mainnet", - "matic", - "optimism", - "unichain" - ], - "description": "The Graph Network ID https://thegraph.com/networks", - "example": "mainnet" + "description": "Filter by address" }, - "icon": { - "type": "object", - "properties": { - "web3icon": { - "type": "string" - } - }, - "required": [ - "web3icon" - ] + "authority": { + "type": "string", + "description": "Filter by address" }, - "symbol": { - "type": "string" + "source": { + "type": "string", + "description": "Filter by address" }, - "name": { - "type": "string" + "destination": { + "type": "string", + "description": "Filter by address" }, - "decimals": { - "type": "number" + "amount": { + "type": "string" }, - "price_usd": { + "value": { "type": "number" }, - "market_cap": { - "type": "number" + "decimals": { + "type": [ + "integer", + "null" + ] }, - "low_liquidity": { - "type": "boolean" + "network_id": { + "type": "string", + "enum": [ + "solana" + ], + "description": "The Graph Network ID for SVM networks https://thegraph.com/networks", + "example": "solana" } }, "required": [ "block_num", "datetime", - "address", - "circulating_supply", - "holders", - "network_id", - "icon" + "timestamp", + "signature", + "program_id", + "mint", + "authority", + "source", + "destination", + "amount", + "value", + "decimals", + "network_id" ] } }, @@ -1800,18 +1984,19 @@ "example": { "data": [ { - "block_num": 22589353, - "datetime": "2025-05-29 15:40:11", - "address": "0xc944e90c64b2c07662a292be6244bdf05cda44a7", - "decimals": 18, - "symbol": "GRT", - "name": "Graph Token", - "circulating_supply": "16667753581.233711", - "holders": 139562, - "network_id": "mainnet", - "icon": { - "web3icon": "GRT" - } + "block_num": 352372432, + "datetime": "2025-07-10 12:32:03", + "timestamp": 1752150723, + "signature": "4t7ZD3Fd8i9md6CTF6SEoZ9aPkr1fhRpXXSK2DhrUe5Wcm9VFdJ9Sn4WvbhdQaetLkiq8Xm3r5YgU1ffSJaA6c2e", + "program_id": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "authority": "J5kWrUKVPrtjwMVQLNgUEC9RY9Ujh8pYTN3nqWUkg1zp", + "mint": "So11111111111111111111111111111111111111112", + "source": "G4sbSww72omqHsC6tYe4syFtzHyBieS6MjbRWmSn1mt5", + "destination": "7ds7shXvLdNzihJXrjuoYYTr8bD5c2zwRxmZrrSZXgmM", + "amount": 333993128, + "decimals": 9, + "value": 0.333993128, + "network_id": "solana" } ] } @@ -1819,44 +2004,139 @@ } } }, - "operationId": "getTokensEvmByContract", + "operationId": "getTransfersSvm", "tags": [ - "EVM" + "SVM" ], "parameters": [ { - "in": "path", - "name": "contract", + "in": "query", + "name": "network_id", "schema": { "type": "string", - "pattern": "^(0[xX])?[0-9a-fA-F]{40}$", - "description": "Filter by contract address", - "example": "0xc944e90c64b2c07662a292be6244bdf05cda44a7" - }, - "required": true + "enum": [ + "solana" + ], + "description": "The Graph Network ID for SVM networks https://thegraph.com/networks", + "example": "solana" + } }, { "in": "query", - "name": "network_id", + "name": "mint", "schema": { "type": "string", - "enum": [ - "arbitrum-one", - "avalanche", - "base", - "bsc", - "mainnet", - "matic", - "optimism", - "unichain" - ], - "description": "The Graph Network ID https://thegraph.com/networks", - "example": "mainnet" + "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$", + "description": "Filter by mint address", + "example": "So11111111111111111111111111111111111111112" + } + }, + { + "in": "query", + "name": "source", + "schema": { + "type": "string", + "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$", + "description": "Filter by token account address" + } + }, + { + "in": "query", + "name": "destination", + "schema": { + "type": "string", + "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$", + "description": "Filter by token account address" + } + }, + { + "in": "query", + "name": "authority", + "schema": { + "type": "string", + "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$", + "description": "Filter by authority token account address" + } + }, + { + "in": "query", + "name": "program_id", + "schema": { + "type": "string", + "enum": [ + "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb", + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" + ], + "description": "Filter by program ID" + } + }, + { + "in": "query", + "name": "startTime", + "schema": { + "type": "number", + "minimum": 0, + "description": "UNIX timestamp in seconds." + } + }, + { + "in": "query", + "name": "endTime", + "schema": { + "type": "number", + "minimum": 0, + "description": "UNIX timestamp in seconds." + } + }, + { + "in": "query", + "name": "orderBy", + "schema": { + "type": "string", + "enum": [ + "timestamp" + ], + "default": "timestamp", + "description": "The field by which to order the results." + } + }, + { + "in": "query", + "name": "orderDirection", + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "desc", + "description": "The order in which to return the results: Ascending (asc) or Descending (desc)." + } + }, + { + "in": "query", + "name": "limit", + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 1000, + "default": 10, + "description": "The maximum number of items returned in a single request." + } + }, + { + "in": "query", + "name": "page", + "schema": { + "type": "integer", + "minimum": 1, + "default": 1, + "description": "The page number of the results to return." } } ], - "summary": "Token Metadata", - "description": "Provides ERC-20 token contract metadata.", + "summary": "Transfers Events", + "description": "Provides SPL transfer events.", "security": [ { "bearerAuth": [] @@ -1864,7 +2144,7 @@ ] } }, - "/holders/evm/{contract}": { + "/tokens/evm/{contract}": { "get": { "responses": { "200": { @@ -1889,10 +2169,10 @@ "type": "string", "description": "Filter by address" }, - "amount": { + "circulating_supply": { "type": "string" }, - "value": { + "holders": { "type": "number" }, "network_id": { @@ -1907,19 +2187,33 @@ "optimism", "unichain" ], - "description": "The Graph Network ID https://thegraph.com/networks", + "description": "The Graph Network ID for EVM networks https://thegraph.com/networks", "example": "mainnet" }, + "icon": { + "type": "object", + "properties": { + "web3icon": { + "type": "string" + } + }, + "required": [ + "web3icon" + ] + }, "symbol": { "type": "string" }, + "name": { + "type": "string" + }, "decimals": { "type": "number" }, "price_usd": { "type": "number" }, - "value_usd": { + "market_cap": { "type": "number" }, "low_liquidity": { @@ -1930,9 +2224,10 @@ "block_num", "datetime", "address", - "amount", - "value", - "network_id" + "circulating_supply", + "holders", + "network_id", + "icon" ] } }, @@ -1958,14 +2253,18 @@ "example": { "data": [ { - "block_num": 22578579, - "last_balance_update": "2025-05-28 03:25:47", - "address": "0x36aff7001294dae4c2ed4fdefc478a00de77f090", - "amount": "2868440291872963359806035918", - "value": 2868440291.8729634, + "block_num": 22589353, + "datetime": "2025-05-29 15:40:11", + "address": "0xc944e90c64b2c07662a292be6244bdf05cda44a7", "decimals": 18, "symbol": "GRT", - "network_id": "mainnet" + "name": "Graph Token", + "circulating_supply": "16667753581.233711", + "holders": 139562, + "network_id": "mainnet", + "icon": { + "web3icon": "GRT" + } } ] } @@ -1973,7 +2272,7 @@ } } }, - "operationId": "getHoldersEvmByContract", + "operationId": "getTokensEvmByContract", "tags": [ "EVM" ], @@ -1991,21 +2290,530 @@ }, { "in": "query", - "name": "network_id", + "name": "network_id", + "schema": { + "type": "string", + "enum": [ + "arbitrum-one", + "avalanche", + "base", + "bsc", + "mainnet", + "matic", + "optimism", + "unichain" + ], + "description": "The Graph Network ID for EVM networks https://thegraph.com/networks", + "example": "mainnet" + } + } + ], + "summary": "Token Metadata", + "description": "Provides ERC-20 token contract metadata.", + "security": [ + { + "bearerAuth": [] + } + ] + } + }, + "/holders/evm/{contract}": { + "get": { + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "block_num": { + "type": "number" + }, + "datetime": { + "type": "string" + }, + "address": { + "type": "string", + "description": "Filter by address" + }, + "amount": { + "type": "string" + }, + "value": { + "type": "number" + }, + "network_id": { + "type": "string", + "enum": [ + "arbitrum-one", + "avalanche", + "base", + "bsc", + "mainnet", + "matic", + "optimism", + "unichain" + ], + "description": "The Graph Network ID for EVM networks https://thegraph.com/networks", + "example": "mainnet" + }, + "symbol": { + "type": "string" + }, + "decimals": { + "type": "number" + }, + "price_usd": { + "type": "number" + }, + "value_usd": { + "type": "number" + }, + "low_liquidity": { + "type": "boolean" + } + }, + "required": [ + "block_num", + "datetime", + "address", + "amount", + "value", + "network_id" + ] + } + }, + "statistics": { + "type": "object", + "properties": { + "elapsed": { + "type": "number" + }, + "rows_read": { + "type": "number" + }, + "bytes_read": { + "type": "number" + } + } + } + }, + "required": [ + "data" + ] + }, + "example": { + "data": [ + { + "block_num": 22578579, + "last_balance_update": "2025-05-28 03:25:47", + "address": "0x36aff7001294dae4c2ed4fdefc478a00de77f090", + "amount": "2868440291872963359806035918", + "value": 2868440291.8729634, + "decimals": 18, + "symbol": "GRT", + "network_id": "mainnet" + } + ] + } + } + } + } + }, + "operationId": "getHoldersEvmByContract", + "tags": [ + "EVM" + ], + "parameters": [ + { + "in": "path", + "name": "contract", + "schema": { + "type": "string", + "pattern": "^(0[xX])?[0-9a-fA-F]{40}$", + "description": "Filter by contract address", + "example": "0xc944e90c64b2c07662a292be6244bdf05cda44a7" + }, + "required": true + }, + { + "in": "query", + "name": "network_id", + "schema": { + "type": "string", + "enum": [ + "arbitrum-one", + "avalanche", + "base", + "bsc", + "mainnet", + "matic", + "optimism", + "unichain" + ], + "description": "The Graph Network ID for EVM networks https://thegraph.com/networks", + "example": "mainnet" + } + }, + { + "in": "query", + "name": "orderBy", + "schema": { + "type": "string", + "enum": [ + "value" + ], + "default": "value", + "description": "The field by which to order the results." + } + }, + { + "in": "query", + "name": "orderDirection", + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "desc", + "description": "The order in which to return the results: Ascending (asc) or Descending (desc)." + } + }, + { + "in": "query", + "name": "limit", + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 1000, + "default": 10, + "description": "The maximum number of items returned in a single request." + } + }, + { + "in": "query", + "name": "page", + "schema": { + "type": "integer", + "minimum": 1, + "default": 1, + "description": "The page number of the results to return." + } + } + ], + "summary": "Token Holders", + "description": "Provides ERC-20 token holder balances by contract address.", + "security": [ + { + "bearerAuth": [] + } + ] + } + }, + "/swaps/evm": { + "get": { + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "block_num": { + "type": "number" + }, + "datetime": { + "type": "string" + }, + "timestamp": { + "type": "number" + }, + "network_id": { + "type": "string", + "enum": [ + "arbitrum-one", + "avalanche", + "base", + "bsc", + "mainnet", + "matic", + "optimism", + "unichain" + ], + "description": "The Graph Network ID for EVM networks https://thegraph.com/networks", + "example": "mainnet" + }, + "transaction_id": { + "type": "string" + }, + "caller": { + "type": "string", + "description": "Filter by address" + }, + "sender": { + "type": "string", + "description": "Filter by address" + }, + "recipient": { + "type": "string", + "description": "Filter by address" + }, + "factory": { + "type": "string", + "description": "Filter by address" + }, + "pool": { + "type": "string", + "description": "Filter by address" + }, + "token0": { + "type": "object", + "properties": { + "address": { + "type": "string", + "description": "Filter by address" + }, + "symbol": { + "type": "string" + }, + "decimals": { + "type": "number" + } + }, + "required": [ + "address", + "symbol", + "decimals" + ] + }, + "token1": { + "type": "object", + "properties": { + "address": { + "type": "string", + "description": "Filter by address" + }, + "symbol": { + "type": "string" + }, + "decimals": { + "type": "number" + } + }, + "required": [ + "address", + "symbol", + "decimals" + ] + }, + "amount0": { + "type": "string" + }, + "amount1": { + "type": "string" + }, + "price0": { + "type": "number" + }, + "price1": { + "type": "number" + }, + "value0": { + "type": "number" + }, + "value1": { + "type": "number" + }, + "fee": { + "type": "string" + }, + "protocol": { + "type": "string" + } + }, + "required": [ + "block_num", + "datetime", + "timestamp", + "network_id", + "transaction_id", + "caller", + "sender", + "recipient", + "factory", + "pool", + "token0", + "token1", + "amount0", + "amount1", + "price0", + "price1", + "value0", + "value1", + "fee", + "protocol" + ] + } + }, + "statistics": { + "type": "object", + "properties": { + "elapsed": { + "type": "number" + }, + "rows_read": { + "type": "number" + }, + "bytes_read": { + "type": "number" + } + } + } + }, + "required": [ + "data" + ] + }, + "example": { + "data": [ + { + "block_num": 22589391, + "datetime": "2025-05-29 15:47:47", + "timestamp": 1748533667, + "transaction_id": "0x1ce019b0ad129b8bd21b6c83b75de5e5fd7cd07f2ee739ca3198adcbeb61f5a9", + "caller": "0x66a9893cc07d91d95644aedd05d03f95e1dba8af", + "pool": "0xb98437c7ba28c6590dd4e1cc46aa89eed181f97108e5b6221730d41347bc817f", + "factory": "0x000000000004444c5dc75cb358380d2e3de08a90", + "token0": { + "address": "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599", + "symbol": "WBTC", + "decimals": 8 + }, + "token1": { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "symbol": "USDC", + "decimals": 6 + }, + "sender": "0x66a9893cc07d91d95644aedd05d03f95e1dba8af", + "recipient": null, + "amount0": "-894320", + "amount1": "957798098", + "value0": -0.0089432, + "value1": 957.798098, + "price0": 107417.48517180652, + "price1": 0.00000930947134352077, + "protocol": "uniswap_v4", + "network_id": "mainnet" + } + ] + } + } + } + } + }, + "operationId": "getSwapsEvm", + "tags": [ + "EVM" + ], + "parameters": [ + { + "in": "query", + "name": "network_id", + "schema": { + "type": "string", + "enum": [ + "arbitrum-one", + "avalanche", + "base", + "bsc", + "mainnet", + "matic", + "optimism", + "unichain" + ], + "description": "The Graph Network ID for EVM networks https://thegraph.com/networks", + "example": "mainnet" + } + }, + { + "in": "query", + "name": "pool", + "schema": { + "type": "string", + "pattern": "^(0[xX])?[0-9a-fA-F]{40}$", + "description": "Filter by contract address", + "example": "0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640" + } + }, + { + "in": "query", + "name": "caller", + "schema": { + "type": "string", + "pattern": "^(0[xX])?[0-9a-fA-F]{40}$", + "description": "Filter by address" + } + }, + { + "in": "query", + "name": "sender", + "schema": { + "type": "string", + "pattern": "^(0[xX])?[0-9a-fA-F]{40}$", + "description": "Filter by address" + } + }, + { + "in": "query", + "name": "recipient", + "schema": { + "type": "string", + "pattern": "^(0[xX])?[0-9a-fA-F]{40}$", + "description": "Filter by address" + } + }, + { + "in": "query", + "name": "protocol", "schema": { "type": "string", "enum": [ - "arbitrum-one", - "avalanche", - "base", - "bsc", - "mainnet", - "matic", - "optimism", - "unichain" + "uniswap_v2", + "uniswap_v3" ], - "description": "The Graph Network ID https://thegraph.com/networks", - "example": "mainnet" + "description": "Protocol name", + "example": "uniswap_v3" + } + }, + { + "in": "query", + "name": "startTime", + "schema": { + "type": "number", + "minimum": 0, + "description": "UNIX timestamp in seconds." + } + }, + { + "in": "query", + "name": "endTime", + "schema": { + "type": "number", + "minimum": 0, + "description": "UNIX timestamp in seconds." } }, { @@ -2014,9 +2822,9 @@ "schema": { "type": "string", "enum": [ - "value" + "timestamp" ], - "default": "value", + "default": "timestamp", "description": "The field by which to order the results." } }, @@ -2033,6 +2841,15 @@ "description": "The order in which to return the results: Ascending (asc) or Descending (desc)." } }, + { + "in": "query", + "name": "transaction_id", + "schema": { + "type": "string", + "pattern": "^(0[xX])?[0-9a-fA-F]{64}$", + "description": "Filter by transaction" + } + }, { "in": "query", "name": "limit", @@ -2055,8 +2872,8 @@ } } ], - "summary": "Token Holders", - "description": "Provides ERC-20 token holder balances by contract address.", + "summary": "Swap Events", + "description": "Provides Uniswap V2 & V3 swap events.", "security": [ { "bearerAuth": [] @@ -2064,7 +2881,7 @@ ] } }, - "/swaps/evm": { + "/swaps/svm": { "get": { "responses": { "200": { @@ -2088,45 +2905,38 @@ "timestamp": { "type": "number" }, - "network_id": { - "type": "string", - "enum": [ - "arbitrum-one", - "avalanche", - "base", - "bsc", - "mainnet", - "matic", - "optimism", - "unichain" - ], - "description": "The Graph Network ID https://thegraph.com/networks", - "example": "mainnet" + "transaction_index": { + "type": "number" }, - "transaction_id": { + "instruction_index": { + "type": "number" + }, + "signature": { "type": "string" }, - "caller": { + "program_id": { "type": "string", "description": "Filter by address" }, - "sender": { - "type": "string", - "description": "Filter by address" + "program_name": { + "type": "string" }, - "recipient": { + "user": { "type": "string", "description": "Filter by address" }, - "factory": { + "amm": { "type": "string", "description": "Filter by address" }, - "pool": { + "amm_name": { + "type": "string" + }, + "amm_pool": { "type": "string", "description": "Filter by address" }, - "token0": { + "input_mint": { "type": "object", "properties": { "address": { @@ -2146,7 +2956,10 @@ "decimals" ] }, - "token1": { + "input_amount": { + "type": "number" + }, + "output_mint": { "type": "object", "properties": { "address": { @@ -2166,52 +2979,35 @@ "decimals" ] }, - "amount0": { - "type": "string" - }, - "amount1": { - "type": "string" - }, - "price0": { - "type": "number" - }, - "price1": { - "type": "number" - }, - "value0": { - "type": "number" - }, - "value1": { + "output_amount": { "type": "number" }, - "fee": { - "type": "string" - }, - "protocol": { - "type": "string" + "network_id": { + "type": "string", + "enum": [ + "solana" + ], + "description": "The Graph Network ID for SVM networks https://thegraph.com/networks", + "example": "solana" } }, "required": [ "block_num", "datetime", "timestamp", - "network_id", - "transaction_id", - "caller", - "sender", - "recipient", - "factory", - "pool", - "token0", - "token1", - "amount0", - "amount1", - "price0", - "price1", - "value0", - "value1", - "fee", - "protocol" + "transaction_index", + "instruction_index", + "signature", + "program_id", + "program_name", + "user", + "amm", + "amm_name", + "input_mint", + "input_amount", + "output_mint", + "output_amount", + "network_id" ] } }, @@ -2237,33 +3033,21 @@ "example": { "data": [ { - "block_num": 22589391, - "datetime": "2025-05-29 15:47:47", - "timestamp": 1748533667, - "transaction_id": "0x1ce019b0ad129b8bd21b6c83b75de5e5fd7cd07f2ee739ca3198adcbeb61f5a9", - "caller": "0x66a9893cc07d91d95644aedd05d03f95e1dba8af", - "pool": "0xb98437c7ba28c6590dd4e1cc46aa89eed181f97108e5b6221730d41347bc817f", - "factory": "0x000000000004444c5dc75cb358380d2e3de08a90", - "token0": { - "address": "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599", - "symbol": "WBTC", - "decimals": 8 - }, - "token1": { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "symbol": "USDC", - "decimals": 6 - }, - "sender": "0x66a9893cc07d91d95644aedd05d03f95e1dba8af", - "recipient": null, - "amount0": "-894320", - "amount1": "957798098", - "value0": -0.0089432, - "value1": 957.798098, - "price0": 107417.48517180652, - "price1": 0.00000930947134352077, - "protocol": "uniswap_v4", - "network_id": "mainnet" + "block_num": 352243599, + "datetime": "2025-07-09 22:24:36", + "timestamp": 1752099876, + "signature": "oWHA7wPQwpZhr9RJSbTNxsnPkBo1wnd68Zt2fJZPyK3cf1vYVzQiC9Et2mRNvh1t9Zt5dtmoEeSErSCqmMQ58Ls\u0000", + "program_id": "pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA", + "program_name": "Pump.fun AMM", + "amm": "pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA", + "amm_name": "Pump.fun AMM", + "amm_pool": "AmmpSnW5xVeKHTAU9fMjyKEMPgrzmUj3ah5vgvHhAB5J", + "user": "AEWxmZPEdHkCjJXVT9MreY7fCvzbpEK3wCVouCoEnmvE", + "input_mint": "9BB6NFEcjBCtnNLFko2FqVQBq8HHM13kCyYcdQbgpump", + "input_amount": 3653743, + "output_mint": "So11111111111111111111111111111111111111112", + "output_amount": 25548025, + "network_id": "solana" } ] } @@ -2271,9 +3055,9 @@ } } }, - "operationId": "getSwapsEvm", + "operationId": "getSwapsSvm", "tags": [ - "EVM" + "SVM" ], "parameters": [ { @@ -2282,68 +3066,79 @@ "schema": { "type": "string", "enum": [ - "arbitrum-one", - "avalanche", - "base", - "bsc", - "mainnet", - "matic", - "optimism", - "unichain" + "solana" ], - "description": "The Graph Network ID https://thegraph.com/networks", - "example": "mainnet" - } + "description": "The Graph Network ID for SVM networks https://thegraph.com/networks", + "example": "solana" + }, + "required": false }, { "in": "query", - "name": "pool", + "name": "program_id", "schema": { "type": "string", - "pattern": "^(0[xX])?[0-9a-fA-F]{40}$", - "description": "Filter by contract address", - "example": "0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640" - } + "enum": [ + "675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8", + "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", + "pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA", + "JUP4Fb2cqiRUcaTHdrPC8h2gNsA2ETXiPDD33WcGuJB", + "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4" + ], + "description": "Filter by program ID", + "example": "pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA" + }, + "required": true }, { "in": "query", - "name": "caller", + "name": "amm", "schema": { "type": "string", - "pattern": "^(0[xX])?[0-9a-fA-F]{40}$", - "description": "Filter by address" - } + "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$", + "description": "Filter by amm address" + }, + "required": false }, { "in": "query", - "name": "sender", + "name": "amm_pool", "schema": { "type": "string", - "pattern": "^(0[xX])?[0-9a-fA-F]{40}$", - "description": "Filter by address" - } + "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$", + "description": "Filter by amm pool address" + }, + "required": false }, { "in": "query", - "name": "recipient", + "name": "user", "schema": { "type": "string", - "pattern": "^(0[xX])?[0-9a-fA-F]{40}$", - "description": "Filter by address" - } + "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$", + "description": "Filter by user address" + }, + "required": false }, { "in": "query", - "name": "protocol", + "name": "input_mint", "schema": { "type": "string", - "enum": [ - "uniswap_v2", - "uniswap_v3" - ], - "description": "Protocol name", - "example": "uniswap_v3" - } + "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$", + "description": "Filter by mint address" + }, + "required": false + }, + { + "in": "query", + "name": "output_mint", + "schema": { + "type": "string", + "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$", + "description": "Filter by mint address" + }, + "required": false }, { "in": "query", @@ -2352,7 +3147,8 @@ "type": "number", "minimum": 0, "description": "UNIX timestamp in seconds." - } + }, + "required": false }, { "in": "query", @@ -2361,7 +3157,8 @@ "type": "number", "minimum": 0, "description": "UNIX timestamp in seconds." - } + }, + "required": false }, { "in": "query", @@ -2373,7 +3170,8 @@ ], "default": "timestamp", "description": "The field by which to order the results." - } + }, + "required": false }, { "in": "query", @@ -2386,16 +3184,18 @@ ], "default": "desc", "description": "The order in which to return the results: Ascending (asc) or Descending (desc)." - } + }, + "required": false }, { "in": "query", - "name": "transaction_id", + "name": "signature", "schema": { "type": "string", - "pattern": "^(0[xX])?[0-9a-fA-F]{64}$", - "description": "Filter by transaction" - } + "pattern": "^[1-9A-HJ-NP-Za-km-z]{87,88}$", + "description": "Filter by transaction signature" + }, + "required": false }, { "in": "query", @@ -2406,7 +3206,8 @@ "maximum": 1000, "default": 10, "description": "The maximum number of items returned in a single request." - } + }, + "required": false }, { "in": "query", @@ -2416,11 +3217,12 @@ "minimum": 1, "default": 1, "description": "The page number of the results to return." - } + }, + "required": false } ], "summary": "Swap Events", - "description": "Provides Uniswap V2 & V3 swap events.", + "description": "Provides AMM Swap events.", "security": [ { "bearerAuth": [] @@ -2461,7 +3263,7 @@ "optimism", "unichain" ], - "description": "The Graph Network ID https://thegraph.com/networks", + "description": "The Graph Network ID for EVM networks https://thegraph.com/networks", "example": "mainnet" }, "transaction_id": { @@ -2603,7 +3405,7 @@ "optimism", "unichain" ], - "description": "The Graph Network ID https://thegraph.com/networks", + "description": "The Graph Network ID for EVM networks https://thegraph.com/networks", "example": "mainnet" } }, @@ -2654,6 +3456,27 @@ "description": "Protocol name", "example": "uniswap_v3" } + }, + { + "in": "query", + "name": "limit", + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 1000, + "default": 10, + "description": "The maximum number of items returned in a single request." + } + }, + { + "in": "query", + "name": "page", + "schema": { + "type": "integer", + "minimum": 1, + "default": 1, + "description": "The page number of the results to return." + } } ], "summary": "Liquidity Pools", @@ -2790,7 +3613,7 @@ "optimism", "unichain" ], - "description": "The Graph Network ID https://thegraph.com/networks", + "description": "The Graph Network ID for EVM networks https://thegraph.com/networks", "example": "mainnet" } }, @@ -2984,7 +3807,7 @@ "optimism", "unichain" ], - "description": "The Graph Network ID https://thegraph.com/networks", + "description": "The Graph Network ID for EVM networks https://thegraph.com/networks", "example": "mainnet" } }, @@ -3193,7 +4016,7 @@ "optimism", "unichain" ], - "description": "The Graph Network ID https://thegraph.com/networks", + "description": "The Graph Network ID for EVM networks https://thegraph.com/networks", "example": "mainnet" } }, @@ -3399,9 +4222,9 @@ ] }, "example": { - "version": "1.6.2", - "commit": "a82a86b", - "date": "2025-06-05", + "version": "2.2.6", + "commit": "153a17c", + "date": "2025-07-10", "repo": "pinax-network/token-api" } } diff --git a/website/src/pages/ar/ai-suite/_meta-titles.json b/website/src/pages/ar/ai-suite/_meta-titles.json new file mode 100644 index 000000000000..5eb482a7092b --- /dev/null +++ b/website/src/pages/ar/ai-suite/_meta-titles.json @@ -0,0 +1,6 @@ +{ + "graph-assistant": "Graph Assistant", + "ai-introduction": "The Graph's AI", + "subgraph-mcp": "Subgraph MCP", + "token-api-mcp": "Token API MCP" +} diff --git a/website/src/pages/ar/ai-suite/_meta.js b/website/src/pages/ar/ai-suite/_meta.js new file mode 100644 index 000000000000..c9e51dfd35fb --- /dev/null +++ b/website/src/pages/ar/ai-suite/_meta.js @@ -0,0 +1,8 @@ +import titles from './_meta-titles.json' + +export default { + 'ai-introduction': titles['ai-introduction'], + 'graph-assistant': titles['graph-assistant'], + 'subgraph-mcp': titles['subgraph-mcp'], + 'token-api-mcp': titles['token-api-mcp'], +} diff --git a/website/src/pages/ar/ai-suite/ai-introduction.mdx b/website/src/pages/ar/ai-suite/ai-introduction.mdx new file mode 100644 index 000000000000..d25cc9f77358 --- /dev/null +++ b/website/src/pages/ar/ai-suite/ai-introduction.mdx @@ -0,0 +1,58 @@ +--- +title: The Graph's AI +--- + +Build with speed and scale faster with The Graph's AI. + +## Using AI on The Graph + +Instead of relying on static datasets or centralized APIs, you can now access live blockchain data through our **agentic** app, [Graph Assistant](/ai-suite/graph-assistant/introduction/), and use our AI-native tooling, [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/), and [Token API MCP](/ai-suite/token-api-mcp/introduction/). + +### Why Use Onchain Data with AI? + +Using onchain data with AI unlocks powerful new ways to interact with and understand blockchain ecosystems. + +- **AI for Non-Technical End Users**: AI can turn complex onchain data into accessible insights. Assistants powered by AI enable you to explore and analyze blockchain data without coding. +- **AI for Developers**: You can use AI to interact directly with The Graph's data through your agents or build AI-powered applications on top of it. This streamlines development and opens up more intuitive, dynamic use cases. + +## AI for Non-Technical/End Users + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) is a powerful **agentic** application that empowers users to easily interact with blockchain data. Ask questions in simple, natural language and get rich, AI powered insights. Both technical developers and non-technical product teams can move faster, make smarter decisions, and gain a clearer understanding than ever before. + +### Benefits of Using Graph Assistant + +- **Natural language Input**: You don't need to write complex queries or sift through dashboards. Simply ask your question in plain English and get clear, structured results. +- **Multi-source support**: Works across multiple Subgraphs and Token API. The Assistant automatically determines which data source to use, so you don't have to switch tools or manage endpoints. +- **Schema-free access**: You don't need to understand the schema. You can refer to tokens, protocols, dates, or addresses using natural language. The Assistant takes care of the rest. + +### Conversational Querying with Graph Assistant + +**Example queries:** + +- "List the top-5 swaps by USD value in the last 24 hours." +- "Give me the daily volume on Uniswap." +- "List the 20 most recently registered .eth names." + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) will eventually be a one-stop shop for interacting with The Graph. Right now, it's an agentic AI app that uses state-of-the-art AI techniques, LLMs, and MCPs to understand and answer your questions about [Subgraphs](/subgraphs/developing/subgraphs/) and [Token API](/token-api/quick-start/) data. + +## AI for Developers + +### Enable Natural Language Access to Onchain Data + +[Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) servers connect to Claude, Cline, and Cursor. They enable models to understand, query, and interact with structured onchain data using natural language. MCPs remove the need to write low-level queries or interact with APIs directly. + +### Subgraph MCP + +The [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/) server connects models to Subgraphs on The Graph Network. It allows language models to explore Subgraph schemas, execute GraphQL queries, find relevant Subgraphs by keyword or contract, and surface usage metrics using natural language. + +### Token API MCP + +The [Token API MCP](/ai-suite/token-api-mcp/introduction/) MCP server enables models to access onchain token data. It supports querying token metadata, wallet balances, transfer history, and top token holders through simple prompts. + +#### Benefits of Using Subgraph and Token API MCPs + +- Query Subgraphs and token data using natural language +- Access GraphQL schemas and token metadata without manual queries +- Find Subgraphs by keyword or contract and check 30-day usage +- Retrieve real-time data from The Graph and onchain token sources +- Get wallet balances, transfer history, and top token holders diff --git a/website/src/pages/ar/ai-suite/graph-assistant/_meta.js b/website/src/pages/ar/ai-suite/graph-assistant/_meta.js new file mode 100644 index 000000000000..74da5e0686a7 --- /dev/null +++ b/website/src/pages/ar/ai-suite/graph-assistant/_meta.js @@ -0,0 +1,6 @@ +export default { + 'quick-start': '', + introduction: '', + 'how-to-guide': '', + faq: '', +} diff --git a/website/src/pages/ar/ai-suite/graph-assistant/faq.mdx b/website/src/pages/ar/ai-suite/graph-assistant/faq.mdx new file mode 100644 index 000000000000..8addf9935524 --- /dev/null +++ b/website/src/pages/ar/ai-suite/graph-assistant/faq.mdx @@ -0,0 +1,26 @@ +--- +title: Graph Assistant FAQ +sidebarTitle: 'FAQ' +--- + +This page summarizes some of the most common questions for developers using Graph Assistant. + +1. What is The Graph Assistant? + +The Graph Assistant is an AI-powered chat interface that lets you query blockchain data in plain English. Under the hood, it translates your questions into GraphQL calls against Subgraphs and the Token API, then returns results, no coding required. + +2. What is an agentic application? + +An agentic application combines AI-driven reasoning with external data sources or APIs to take autonomous actions on your behalf. In this case, Graph Assistant acts as an “agent” that interprets your natural-language prompts, builds and dispatches GraphQL queries, and formats the results so that you don't need to write or manage queries yourself. + +3. Which networks and data does Graph Assistant support? + +The Assistant has access to Subgraphs across multiple chains. If a Subgraph is published to The Graph Network and is being indexed, the Assistant can automatically route queries to it. The Assistant also has access to the Token API on Ethereum Mainnet, BSC, Unichain, Arbitrum-One, Optimism, and Polygon. + +4. Is there a usage limit or quota? + +Yes, 10 questions per hour. + +5. What if the Assistant can't interpret my question? + +When the Assistant fails to parse your intent (for example, ambiguous token name, missing context, or an unsupported request), it will prompt you for clarification. For instance, it might ask, “Did you mean XYZ on Ethereum or XYZ on Arbitrum?” or “Please specify a date range for this query.” If you continue to see parsing errors, check that you're using correct token symbols or specifying networks and time frames clearly. diff --git a/website/src/pages/ar/ai-suite/graph-assistant/how-to-guide.mdx b/website/src/pages/ar/ai-suite/graph-assistant/how-to-guide.mdx new file mode 100644 index 000000000000..463130894ad8 --- /dev/null +++ b/website/src/pages/ar/ai-suite/graph-assistant/how-to-guide.mdx @@ -0,0 +1,56 @@ +--- +title: How To Use The Graph Assistant +sidebarTitle: 'How-to Guide' +--- + +## Overview + +You type a natural language question into the chat interface, such as: + +```yaml +'On Uniswap, return the top-10 pools by total value locked in USD.' +``` + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the underlying agents. Do not share sensitive, personal, or private information. + +### Behind the Scenes + +The Assistant: + +1. Interprets your intent +2. Maps it to the correct Subgraphs or Token API endpoint +3. Executes optimized queries +4. Returns clean, structured results + +You don't need to write queries or understand a Subgraph's schema, you simply ask. + +### Example Use Cases + +**Protocol Analytics** + +- “Compare daily active users on Aave vs. Compound in May 2025.” +- “Show me the total value locked (TVL) for XYZDAO over the last quarter.” + +**Token Insights** + +- “What are the top 10 tokens by market cap on Ethereum right now?” +- “How many XYZ did I receive between May 1 and May 15?” + +**Historical Data Retrieval** + +- “Fetch the token price history of XYZ for the last six months.” +- “What was the average gas price on Ethereum during April?” + +**Portfolio Monitoring** + +- “List my wallet’s current token balances and their USD equivalents.” +- “Calculate profit/loss on XYZ since xyz date.” + +**Cross-Chain Comparison** + +- “Show me the 7-day trading volume of XYZ on Ethereum vs. Polygon.” +- “How many XYZ swaps occurred on Arbitrum yesterday?” + +To get started follow the [quickstart](/ai-suite/graph-assistant/quick-start/) and explore its capabilities. diff --git a/website/src/pages/ar/ai-suite/graph-assistant/introduction.mdx b/website/src/pages/ar/ai-suite/graph-assistant/introduction.mdx new file mode 100644 index 000000000000..65fdf0f96028 --- /dev/null +++ b/website/src/pages/ar/ai-suite/graph-assistant/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +[Graph Assistant](https://thegraph.com/graph-assistant) (Beta) gives instant, code-free access to blockchain data, transforming natural language into precise, AI-powered queries without the need to code. + +## Overview + +[Graph Assistant](https://thegraph.com/graph-assistant) is an advanced, [agentic](/en/ai-suite/graph-assistant/faq/) easy-to-use chat interface for querying blockchain data using natural language. Unlike a basic chatbot, Graph Assistant can understand your intent, build complex queries, and execute them automatically. This gives you rich, AI-powered insights from onchain data without writing any code. + +- **Automatically** interprets user intent, generates precise queries, executes them via The Graph's Subgraphs and Token API, and presents structured, AI-powered answers without requiring any code. +- **Removes** the technical complexity found in traditional dashboards or chatbots. It provides composable insights directly from indexed Subgraphs and Token datasets. + +## Core Features + +| Feature | Description | +| --- | --- | +| **Friendly Interface** | Conversational access to blockchain data via natural language. You simply ask questions, the Assistant fetches the answer, and renders results. | +| **Backed by Subgraphs** | Uses subgraphs to index protocol-specific data like transactions, events, and protocol metrics. | +| **Backed by Token API** | Uses Token API for token-level information like balances, transfers, and metadata. | +| **No Setup Required** | No need to configure data sources or write queries. | +| **Automatic Query Building** | The Assistant performs complex queries such as fetching historical token volumes, protocol analytics, or cross-chain data and handles filtering, pagination, and joins across Subgraphs automatically. | + +## Help Shape What's Next + +This is in **beta**, and community input is essential. If you have ideas, questions, or run into anything unexpected, we'd love to hear from you: + +- Join the community on [Discord](https://discord.com/invite/graphprotocol): Provide feedback and stay in the loop with other builders. You'll be able to join the `#graph-assistant` channel to share your experience directly. +- Interested in going deeper? Reach out to become a dedicated beta tester so your specific use case can be better supported. diff --git a/website/src/pages/ar/ai-suite/graph-assistant/quick-start.mdx b/website/src/pages/ar/ai-suite/graph-assistant/quick-start.mdx new file mode 100644 index 000000000000..13f8478b8d2b --- /dev/null +++ b/website/src/pages/ar/ai-suite/graph-assistant/quick-start.mdx @@ -0,0 +1,44 @@ +--- +title: Quick Start +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +This guide provides step-by-step instructions for getting started with Graph Assistant quickly. + +## Step-by Step + +### Step 1. Create an Account + +Go to: [Graph Assistant](https://thegraph.com/graph-assistant) + +- Click Sign Up (or Log In if you already have an account). +- Use your Google, GitHub, X, email or wallet credentials to log in. +- No additional setup is required. + +### Step 2. Open the Assistant Chat + +After logging in: + +- You'll see Graph Assistant's interface. +- At the bottom of the page, you will find a chat input bar. This is where you will interact with the Assistant. + +### Step 3: Ask Your First Question + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +In the input bar, type a natural-language query (everyday language). + +Example: + +```yaml +Show me the 24-hour trading volume of XYZ token on Ethereum +``` + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the AI interface. Do not share sensitive, personal, or private information. + +The Assistant will: + +- Digest your question +- Fetch onchain data using Subgraphs or the Token API +- Return a clean, formatted response with the data you need diff --git a/website/src/pages/ar/token-api/mcp/_meta.js b/website/src/pages/ar/ai-suite/subgraph-mcp/_meta.js similarity index 75% rename from website/src/pages/ar/token-api/mcp/_meta.js rename to website/src/pages/ar/ai-suite/subgraph-mcp/_meta.js index 8630d4da27b3..6f527b4e53e4 100644 --- a/website/src/pages/ar/token-api/mcp/_meta.js +++ b/website/src/pages/ar/ai-suite/subgraph-mcp/_meta.js @@ -1,4 +1,5 @@ export default { + introduction: '', claude: '', cline: '', cursor: '', diff --git a/website/src/pages/cs/subgraphs/mcp/claude.mdx b/website/src/pages/ar/ai-suite/subgraph-mcp/claude.mdx similarity index 87% rename from website/src/pages/cs/subgraphs/mcp/claude.mdx rename to website/src/pages/ar/ai-suite/subgraph-mcp/claude.mdx index 027b272cb942..ff3caa4e3e7f 100644 --- a/website/src/pages/cs/subgraphs/mcp/claude.mdx +++ b/website/src/pages/ar/ai-suite/subgraph-mcp/claude.mdx @@ -2,17 +2,7 @@ title: Claude Desktop --- -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. - -## What You Can Do - -The Subgraph MCP integration enables you to: - -- Access the GraphQL schema for any Subgraph on The Graph Network -- Execute GraphQL queries against any Subgraph deployment -- Find top Subgraph deployments for a given keyword or contract address -- Get 30-day query volume for Subgraph deployments -- Ask natural language questions about Subgraph data without writing GraphQL queries manually +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data via natural language conversations with Claude. ## Prerequisites diff --git a/website/src/pages/cs/subgraphs/mcp/cline.mdx b/website/src/pages/ar/ai-suite/subgraph-mcp/cline.mdx similarity index 89% rename from website/src/pages/cs/subgraphs/mcp/cline.mdx rename to website/src/pages/ar/ai-suite/subgraph-mcp/cline.mdx index 156221d9a127..eb8044bfe991 100644 --- a/website/src/pages/cs/subgraphs/mcp/cline.mdx +++ b/website/src/pages/ar/ai-suite/subgraph-mcp/cline.mdx @@ -2,7 +2,7 @@ title: Cline --- -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. ## Prerequisites diff --git a/website/src/pages/de/subgraphs/mcp/cursor.mdx b/website/src/pages/ar/ai-suite/subgraph-mcp/cursor.mdx similarity index 88% rename from website/src/pages/de/subgraphs/mcp/cursor.mdx rename to website/src/pages/ar/ai-suite/subgraph-mcp/cursor.mdx index 298f43ece048..6291caf4b06b 100644 --- a/website/src/pages/de/subgraphs/mcp/cursor.mdx +++ b/website/src/pages/ar/ai-suite/subgraph-mcp/cursor.mdx @@ -2,7 +2,7 @@ title: Cursor --- -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. ## Prerequisites diff --git a/website/src/pages/ar/ai-suite/subgraph-mcp/introduction.mdx b/website/src/pages/ar/ai-suite/subgraph-mcp/introduction.mdx new file mode 100644 index 000000000000..da1272cf9a36 --- /dev/null +++ b/website/src/pages/ar/ai-suite/subgraph-mcp/introduction.mdx @@ -0,0 +1,22 @@ +--- +title: Subgraph MCP Introduction +sidebarTitle: 'Introduction' +--- + +Subgraph MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +It presents The Graph's Subgraph data through a set of MCP tools that any MCP-compatible client can call. With these tools, clients can search for relevant Subgraphs, inspect GraphQL schemas, and run queries against specific deployments on The Graph Network all within a single, standardized interface. + +The server itself does not hold a language model. Instead, it translates incoming MCP requests into Subgraph queries and returns the structured results, allowing the client's LLM to transform a natural-language prompt into actionable blockchain data. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Subgraph ecosystem. + +## What You Can Do + +- Access GraphQL schemas for any Subgraph on The Graph Network +- Run GraphQL queries on any Subgraph deployment +- Discover top Subgraph deployments by keyword or contract address +- Retrieve 30-day query volumes for Subgraph deployments +- Ask questions about Subgraph data without writing GraphQL manually + +The Subgraph MCP server allows smooth integration with [Claude](/ai-suite/subgraph-mcp/claude/), [Cline](/ai-suite/subgraph-mcp/cline/), or [Cursor](/ai-suite/subgraph-mcp/cursor/), making blockchain data queries with The Graph Network a conversational experience. diff --git a/website/src/pages/ar/subgraphs/mcp/_meta.js b/website/src/pages/ar/ai-suite/token-api-mcp/_meta.js similarity index 75% rename from website/src/pages/ar/subgraphs/mcp/_meta.js rename to website/src/pages/ar/ai-suite/token-api-mcp/_meta.js index 8630d4da27b3..6f527b4e53e4 100644 --- a/website/src/pages/ar/subgraphs/mcp/_meta.js +++ b/website/src/pages/ar/ai-suite/token-api-mcp/_meta.js @@ -1,4 +1,5 @@ export default { + introduction: '', claude: '', cline: '', cursor: '', diff --git a/website/src/pages/ar/token-api/mcp/claude.mdx b/website/src/pages/ar/ai-suite/token-api-mcp/claude.mdx similarity index 100% rename from website/src/pages/ar/token-api/mcp/claude.mdx rename to website/src/pages/ar/ai-suite/token-api-mcp/claude.mdx diff --git a/website/src/pages/ar/token-api/mcp/cline.mdx b/website/src/pages/ar/ai-suite/token-api-mcp/cline.mdx similarity index 100% rename from website/src/pages/ar/token-api/mcp/cline.mdx rename to website/src/pages/ar/ai-suite/token-api-mcp/cline.mdx diff --git a/website/src/pages/ar/token-api/mcp/cursor.mdx b/website/src/pages/ar/ai-suite/token-api-mcp/cursor.mdx similarity index 100% rename from website/src/pages/ar/token-api/mcp/cursor.mdx rename to website/src/pages/ar/ai-suite/token-api-mcp/cursor.mdx diff --git a/website/src/pages/ar/ai-suite/token-api-mcp/introduction.mdx b/website/src/pages/ar/ai-suite/token-api-mcp/introduction.mdx new file mode 100644 index 000000000000..b61ad0a1c485 --- /dev/null +++ b/website/src/pages/ar/ai-suite/token-api-mcp/introduction.mdx @@ -0,0 +1,23 @@ +--- +title: Token API MCP Introduction +sidebarTitle: 'Introduction' +--- + +Token API MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +This MCP server makes on-chain token data, including metadata, balances, transfers, and holder statistics, accessible through a set of MCP tools. Any compatible client can use these tools to fetch and analyze token information through a standardized interface. It connects to The Graph's hosted Token API database, enabling AI assistants to query real-time blockchain data using natural language requests that get translated into optimized SQL queries. + +The server itself does not host any language model. It simply converts MCP calls into data look-ups and returns structured results, letting the client's own LLM incorporate the results. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Token API data. + +## What You Can Do + +- Retrieve token metadata including name, symbol, decimals, total supply, and contract address +- Get token balances for any wallet address holding a supported ERC-20 token +- Fetch token transfer activity including sender, receiver, amount, and timestamp +- Identify top holders and analyze token distribution +- Ask natural language questions about token data without writing smart contract calls +- Access historical transfer data to analyze token movement over time + +The Token MCP server provides [Claude](/ai-suite/token-api-mcp/claude/), [Cline](/ai-suite/token-api-mcp/cline/), and [Cursor](/ai-suite/token-api-mcp/cursor/) with direct, conversational access to onchain token data. diff --git a/website/src/pages/ar/resources/_meta.js b/website/src/pages/ar/resources/_meta.js index aa8e2d0ec6a8..38c56cf56c43 100644 --- a/website/src/pages/ar/resources/_meta.js +++ b/website/src/pages/ar/resources/_meta.js @@ -7,5 +7,4 @@ export default { roles: titles.roles ?? '', 'migration-guides': titles['migration-guides'] ?? '', 'subgraph-studio-faq': '', - 'claude-mcp': '', } diff --git a/website/src/pages/ar/resources/claude-mcp.mdx b/website/src/pages/ar/resources/claude-mcp.mdx deleted file mode 100644 index 44ed075cffda..000000000000 --- a/website/src/pages/ar/resources/claude-mcp.mdx +++ /dev/null @@ -1,122 +0,0 @@ ---- -title: Claude MCP ---- - -This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. - -## What You Can Do - -With these integrations, you can: - -- **Token API**: Access token and wallet information across multiple blockchains -- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries - -## Prerequisites - -- [Node.js](https://nodejs.org/en/download/) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed -- API keys: - - Token API key from [The Graph Market](https://thegraph.market/) - - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -## Configuration Steps - -### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** - -Paths by operating system: - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -### 2. Add Configuration - -Replace the contents of the existing config file with: - -```json -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "ACCESS_TOKEN" - } - }, - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Keys - -Replace: - -- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) -- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -### 4. Save and Restart - -- Save the configuration file -- Restart Claude Desktop - -### 5. Add The Graph Resources in Claude - -After configuration: - -1. Start a new conversation in Claude Desktop -2. Click on the context menu (top right) -3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP - -> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. - -### 6. Run Queries - -Here are some example queries you can try after setting up the resources: - -### Subgraph Queries - -``` -What are the top pools in Uniswap? -``` - -``` -Who are the top Delegators of The Graph Protocol? -``` - -``` -Please make a bar chart for the number of active loans in Compound for the last 7 days -``` - -### Token API Queries - -``` -Show me the current price of ETH -``` - -``` -What are the top tokens by market cap on Ethereum? -``` - -``` -Analyze this wallet address: 0x... -``` - -## Troubleshooting - -If you encounter issues: - -1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal -2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file -3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs -4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop diff --git a/website/src/pages/ar/subgraphs/_meta.js b/website/src/pages/ar/subgraphs/_meta.js index 4365293ffc72..45841d5f3355 100644 --- a/website/src/pages/ar/subgraphs/_meta.js +++ b/website/src/pages/ar/subgraphs/_meta.js @@ -6,7 +6,6 @@ export default { querying: titles.querying ?? '', developing: titles.developing ?? '', billing: '', - mcp: titles.mcp ?? '', guides: titles.guides, 'best-practices': titles['best-practices'], 'fair-use-policy': '', diff --git a/website/src/pages/ar/substreams/_meta.js b/website/src/pages/ar/substreams/_meta.js index a8ee04618eae..658bb8c213c6 100644 --- a/website/src/pages/ar/substreams/_meta.js +++ b/website/src/pages/ar/substreams/_meta.js @@ -5,5 +5,4 @@ export default { introduction: '', developing: titles.developing ?? '', publishing: '', - sps: titles.sps ?? '', } diff --git a/website/src/pages/ar/token-api/_meta-titles.json b/website/src/pages/ar/token-api/_meta-titles.json index 7ed31e0af95d..3108ecd3ebfd 100644 --- a/website/src/pages/ar/token-api/_meta-titles.json +++ b/website/src/pages/ar/token-api/_meta-titles.json @@ -1,6 +1,7 @@ { "mcp": "MCP", "evm": "EVM Endpoints", + "svm": "SVM Endpoints", "monitoring": "Monitoring Endpoints", "faq": "FAQ" } diff --git a/website/src/pages/ar/token-api/_meta.js b/website/src/pages/ar/token-api/_meta.js index f67576d7f612..fb7f7334ea0c 100644 --- a/website/src/pages/ar/token-api/_meta.js +++ b/website/src/pages/ar/token-api/_meta.js @@ -2,8 +2,8 @@ import titles from './_meta-titles.json' export default { 'quick-start': '', - mcp: titles.mcp ?? '', evm: titles.evm ?? '', + svm: titles.svm ?? '', monitoring: titles.monitoring ?? '', faq: '', } diff --git a/website/src/pages/ar/token-api/svm/_meta.js b/website/src/pages/ar/token-api/svm/_meta.js new file mode 100644 index 000000000000..1a48b82fcbf1 --- /dev/null +++ b/website/src/pages/ar/token-api/svm/_meta.js @@ -0,0 +1,5 @@ +export default { + 'get-balances-svm': '', + 'get-transfers-svm': '', + 'get-swaps-svm': '', +} diff --git a/website/src/pages/ar/token-api/svm/get-balances-svm.mdx b/website/src/pages/ar/token-api/svm/get-balances-svm.mdx new file mode 100644 index 000000000000..c2946c190bf9 --- /dev/null +++ b/website/src/pages/ar/token-api/svm/get-balances-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Balances +template: + type: openApi + apiId: tokenApi + operationId: getBalancesSvm +--- + +Provides Solana tokens balances by token account address. diff --git a/website/src/pages/ar/token-api/svm/get-swaps-svm.mdx b/website/src/pages/ar/token-api/svm/get-swaps-svm.mdx new file mode 100644 index 000000000000..95282a38ac9f --- /dev/null +++ b/website/src/pages/ar/token-api/svm/get-swaps-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsSvm +--- + +Provides Raydium swap events. diff --git a/website/src/pages/ar/token-api/svm/get-transfers-svm.mdx b/website/src/pages/ar/token-api/svm/get-transfers-svm.mdx new file mode 100644 index 000000000000..5335cdddf418 --- /dev/null +++ b/website/src/pages/ar/token-api/svm/get-transfers-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersSvm +--- + +Provides SVM transfer events. diff --git a/website/src/pages/cs/ai-suite/_meta-titles.json b/website/src/pages/cs/ai-suite/_meta-titles.json new file mode 100644 index 000000000000..5eb482a7092b --- /dev/null +++ b/website/src/pages/cs/ai-suite/_meta-titles.json @@ -0,0 +1,6 @@ +{ + "graph-assistant": "Graph Assistant", + "ai-introduction": "The Graph's AI", + "subgraph-mcp": "Subgraph MCP", + "token-api-mcp": "Token API MCP" +} diff --git a/website/src/pages/cs/ai-suite/_meta.js b/website/src/pages/cs/ai-suite/_meta.js new file mode 100644 index 000000000000..c9e51dfd35fb --- /dev/null +++ b/website/src/pages/cs/ai-suite/_meta.js @@ -0,0 +1,8 @@ +import titles from './_meta-titles.json' + +export default { + 'ai-introduction': titles['ai-introduction'], + 'graph-assistant': titles['graph-assistant'], + 'subgraph-mcp': titles['subgraph-mcp'], + 'token-api-mcp': titles['token-api-mcp'], +} diff --git a/website/src/pages/cs/ai-suite/ai-introduction.mdx b/website/src/pages/cs/ai-suite/ai-introduction.mdx new file mode 100644 index 000000000000..d25cc9f77358 --- /dev/null +++ b/website/src/pages/cs/ai-suite/ai-introduction.mdx @@ -0,0 +1,58 @@ +--- +title: The Graph's AI +--- + +Build with speed and scale faster with The Graph's AI. + +## Using AI on The Graph + +Instead of relying on static datasets or centralized APIs, you can now access live blockchain data through our **agentic** app, [Graph Assistant](/ai-suite/graph-assistant/introduction/), and use our AI-native tooling, [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/), and [Token API MCP](/ai-suite/token-api-mcp/introduction/). + +### Why Use Onchain Data with AI? + +Using onchain data with AI unlocks powerful new ways to interact with and understand blockchain ecosystems. + +- **AI for Non-Technical End Users**: AI can turn complex onchain data into accessible insights. Assistants powered by AI enable you to explore and analyze blockchain data without coding. +- **AI for Developers**: You can use AI to interact directly with The Graph's data through your agents or build AI-powered applications on top of it. This streamlines development and opens up more intuitive, dynamic use cases. + +## AI for Non-Technical/End Users + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) is a powerful **agentic** application that empowers users to easily interact with blockchain data. Ask questions in simple, natural language and get rich, AI powered insights. Both technical developers and non-technical product teams can move faster, make smarter decisions, and gain a clearer understanding than ever before. + +### Benefits of Using Graph Assistant + +- **Natural language Input**: You don't need to write complex queries or sift through dashboards. Simply ask your question in plain English and get clear, structured results. +- **Multi-source support**: Works across multiple Subgraphs and Token API. The Assistant automatically determines which data source to use, so you don't have to switch tools or manage endpoints. +- **Schema-free access**: You don't need to understand the schema. You can refer to tokens, protocols, dates, or addresses using natural language. The Assistant takes care of the rest. + +### Conversational Querying with Graph Assistant + +**Example queries:** + +- "List the top-5 swaps by USD value in the last 24 hours." +- "Give me the daily volume on Uniswap." +- "List the 20 most recently registered .eth names." + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) will eventually be a one-stop shop for interacting with The Graph. Right now, it's an agentic AI app that uses state-of-the-art AI techniques, LLMs, and MCPs to understand and answer your questions about [Subgraphs](/subgraphs/developing/subgraphs/) and [Token API](/token-api/quick-start/) data. + +## AI for Developers + +### Enable Natural Language Access to Onchain Data + +[Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) servers connect to Claude, Cline, and Cursor. They enable models to understand, query, and interact with structured onchain data using natural language. MCPs remove the need to write low-level queries or interact with APIs directly. + +### Subgraph MCP + +The [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/) server connects models to Subgraphs on The Graph Network. It allows language models to explore Subgraph schemas, execute GraphQL queries, find relevant Subgraphs by keyword or contract, and surface usage metrics using natural language. + +### Token API MCP + +The [Token API MCP](/ai-suite/token-api-mcp/introduction/) MCP server enables models to access onchain token data. It supports querying token metadata, wallet balances, transfer history, and top token holders through simple prompts. + +#### Benefits of Using Subgraph and Token API MCPs + +- Query Subgraphs and token data using natural language +- Access GraphQL schemas and token metadata without manual queries +- Find Subgraphs by keyword or contract and check 30-day usage +- Retrieve real-time data from The Graph and onchain token sources +- Get wallet balances, transfer history, and top token holders diff --git a/website/src/pages/cs/ai-suite/graph-assistant/_meta.js b/website/src/pages/cs/ai-suite/graph-assistant/_meta.js new file mode 100644 index 000000000000..74da5e0686a7 --- /dev/null +++ b/website/src/pages/cs/ai-suite/graph-assistant/_meta.js @@ -0,0 +1,6 @@ +export default { + 'quick-start': '', + introduction: '', + 'how-to-guide': '', + faq: '', +} diff --git a/website/src/pages/cs/ai-suite/graph-assistant/faq.mdx b/website/src/pages/cs/ai-suite/graph-assistant/faq.mdx new file mode 100644 index 000000000000..8addf9935524 --- /dev/null +++ b/website/src/pages/cs/ai-suite/graph-assistant/faq.mdx @@ -0,0 +1,26 @@ +--- +title: Graph Assistant FAQ +sidebarTitle: 'FAQ' +--- + +This page summarizes some of the most common questions for developers using Graph Assistant. + +1. What is The Graph Assistant? + +The Graph Assistant is an AI-powered chat interface that lets you query blockchain data in plain English. Under the hood, it translates your questions into GraphQL calls against Subgraphs and the Token API, then returns results, no coding required. + +2. What is an agentic application? + +An agentic application combines AI-driven reasoning with external data sources or APIs to take autonomous actions on your behalf. In this case, Graph Assistant acts as an “agent” that interprets your natural-language prompts, builds and dispatches GraphQL queries, and formats the results so that you don't need to write or manage queries yourself. + +3. Which networks and data does Graph Assistant support? + +The Assistant has access to Subgraphs across multiple chains. If a Subgraph is published to The Graph Network and is being indexed, the Assistant can automatically route queries to it. The Assistant also has access to the Token API on Ethereum Mainnet, BSC, Unichain, Arbitrum-One, Optimism, and Polygon. + +4. Is there a usage limit or quota? + +Yes, 10 questions per hour. + +5. What if the Assistant can't interpret my question? + +When the Assistant fails to parse your intent (for example, ambiguous token name, missing context, or an unsupported request), it will prompt you for clarification. For instance, it might ask, “Did you mean XYZ on Ethereum or XYZ on Arbitrum?” or “Please specify a date range for this query.” If you continue to see parsing errors, check that you're using correct token symbols or specifying networks and time frames clearly. diff --git a/website/src/pages/cs/ai-suite/graph-assistant/how-to-guide.mdx b/website/src/pages/cs/ai-suite/graph-assistant/how-to-guide.mdx new file mode 100644 index 000000000000..463130894ad8 --- /dev/null +++ b/website/src/pages/cs/ai-suite/graph-assistant/how-to-guide.mdx @@ -0,0 +1,56 @@ +--- +title: How To Use The Graph Assistant +sidebarTitle: 'How-to Guide' +--- + +## Overview + +You type a natural language question into the chat interface, such as: + +```yaml +'On Uniswap, return the top-10 pools by total value locked in USD.' +``` + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the underlying agents. Do not share sensitive, personal, or private information. + +### Behind the Scenes + +The Assistant: + +1. Interprets your intent +2. Maps it to the correct Subgraphs or Token API endpoint +3. Executes optimized queries +4. Returns clean, structured results + +You don't need to write queries or understand a Subgraph's schema, you simply ask. + +### Example Use Cases + +**Protocol Analytics** + +- “Compare daily active users on Aave vs. Compound in May 2025.” +- “Show me the total value locked (TVL) for XYZDAO over the last quarter.” + +**Token Insights** + +- “What are the top 10 tokens by market cap on Ethereum right now?” +- “How many XYZ did I receive between May 1 and May 15?” + +**Historical Data Retrieval** + +- “Fetch the token price history of XYZ for the last six months.” +- “What was the average gas price on Ethereum during April?” + +**Portfolio Monitoring** + +- “List my wallet’s current token balances and their USD equivalents.” +- “Calculate profit/loss on XYZ since xyz date.” + +**Cross-Chain Comparison** + +- “Show me the 7-day trading volume of XYZ on Ethereum vs. Polygon.” +- “How many XYZ swaps occurred on Arbitrum yesterday?” + +To get started follow the [quickstart](/ai-suite/graph-assistant/quick-start/) and explore its capabilities. diff --git a/website/src/pages/cs/ai-suite/graph-assistant/introduction.mdx b/website/src/pages/cs/ai-suite/graph-assistant/introduction.mdx new file mode 100644 index 000000000000..65fdf0f96028 --- /dev/null +++ b/website/src/pages/cs/ai-suite/graph-assistant/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +[Graph Assistant](https://thegraph.com/graph-assistant) (Beta) gives instant, code-free access to blockchain data, transforming natural language into precise, AI-powered queries without the need to code. + +## Overview + +[Graph Assistant](https://thegraph.com/graph-assistant) is an advanced, [agentic](/en/ai-suite/graph-assistant/faq/) easy-to-use chat interface for querying blockchain data using natural language. Unlike a basic chatbot, Graph Assistant can understand your intent, build complex queries, and execute them automatically. This gives you rich, AI-powered insights from onchain data without writing any code. + +- **Automatically** interprets user intent, generates precise queries, executes them via The Graph's Subgraphs and Token API, and presents structured, AI-powered answers without requiring any code. +- **Removes** the technical complexity found in traditional dashboards or chatbots. It provides composable insights directly from indexed Subgraphs and Token datasets. + +## Core Features + +| Feature | Description | +| --- | --- | +| **Friendly Interface** | Conversational access to blockchain data via natural language. You simply ask questions, the Assistant fetches the answer, and renders results. | +| **Backed by Subgraphs** | Uses subgraphs to index protocol-specific data like transactions, events, and protocol metrics. | +| **Backed by Token API** | Uses Token API for token-level information like balances, transfers, and metadata. | +| **No Setup Required** | No need to configure data sources or write queries. | +| **Automatic Query Building** | The Assistant performs complex queries such as fetching historical token volumes, protocol analytics, or cross-chain data and handles filtering, pagination, and joins across Subgraphs automatically. | + +## Help Shape What's Next + +This is in **beta**, and community input is essential. If you have ideas, questions, or run into anything unexpected, we'd love to hear from you: + +- Join the community on [Discord](https://discord.com/invite/graphprotocol): Provide feedback and stay in the loop with other builders. You'll be able to join the `#graph-assistant` channel to share your experience directly. +- Interested in going deeper? Reach out to become a dedicated beta tester so your specific use case can be better supported. diff --git a/website/src/pages/cs/ai-suite/graph-assistant/quick-start.mdx b/website/src/pages/cs/ai-suite/graph-assistant/quick-start.mdx new file mode 100644 index 000000000000..13f8478b8d2b --- /dev/null +++ b/website/src/pages/cs/ai-suite/graph-assistant/quick-start.mdx @@ -0,0 +1,44 @@ +--- +title: Quick Start +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +This guide provides step-by-step instructions for getting started with Graph Assistant quickly. + +## Step-by Step + +### Step 1. Create an Account + +Go to: [Graph Assistant](https://thegraph.com/graph-assistant) + +- Click Sign Up (or Log In if you already have an account). +- Use your Google, GitHub, X, email or wallet credentials to log in. +- No additional setup is required. + +### Step 2. Open the Assistant Chat + +After logging in: + +- You'll see Graph Assistant's interface. +- At the bottom of the page, you will find a chat input bar. This is where you will interact with the Assistant. + +### Step 3: Ask Your First Question + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +In the input bar, type a natural-language query (everyday language). + +Example: + +```yaml +Show me the 24-hour trading volume of XYZ token on Ethereum +``` + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the AI interface. Do not share sensitive, personal, or private information. + +The Assistant will: + +- Digest your question +- Fetch onchain data using Subgraphs or the Token API +- Return a clean, formatted response with the data you need diff --git a/website/src/pages/cs/subgraphs/mcp/_meta.js b/website/src/pages/cs/ai-suite/subgraph-mcp/_meta.js similarity index 75% rename from website/src/pages/cs/subgraphs/mcp/_meta.js rename to website/src/pages/cs/ai-suite/subgraph-mcp/_meta.js index 8630d4da27b3..6f527b4e53e4 100644 --- a/website/src/pages/cs/subgraphs/mcp/_meta.js +++ b/website/src/pages/cs/ai-suite/subgraph-mcp/_meta.js @@ -1,4 +1,5 @@ export default { + introduction: '', claude: '', cline: '', cursor: '', diff --git a/website/src/pages/de/subgraphs/mcp/claude.mdx b/website/src/pages/cs/ai-suite/subgraph-mcp/claude.mdx similarity index 87% rename from website/src/pages/de/subgraphs/mcp/claude.mdx rename to website/src/pages/cs/ai-suite/subgraph-mcp/claude.mdx index 027b272cb942..ff3caa4e3e7f 100644 --- a/website/src/pages/de/subgraphs/mcp/claude.mdx +++ b/website/src/pages/cs/ai-suite/subgraph-mcp/claude.mdx @@ -2,17 +2,7 @@ title: Claude Desktop --- -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. - -## What You Can Do - -The Subgraph MCP integration enables you to: - -- Access the GraphQL schema for any Subgraph on The Graph Network -- Execute GraphQL queries against any Subgraph deployment -- Find top Subgraph deployments for a given keyword or contract address -- Get 30-day query volume for Subgraph deployments -- Ask natural language questions about Subgraph data without writing GraphQL queries manually +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data via natural language conversations with Claude. ## Prerequisites diff --git a/website/src/pages/de/subgraphs/mcp/cline.mdx b/website/src/pages/cs/ai-suite/subgraph-mcp/cline.mdx similarity index 89% rename from website/src/pages/de/subgraphs/mcp/cline.mdx rename to website/src/pages/cs/ai-suite/subgraph-mcp/cline.mdx index 156221d9a127..eb8044bfe991 100644 --- a/website/src/pages/de/subgraphs/mcp/cline.mdx +++ b/website/src/pages/cs/ai-suite/subgraph-mcp/cline.mdx @@ -2,7 +2,7 @@ title: Cline --- -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. ## Prerequisites diff --git a/website/src/pages/ar/subgraphs/mcp/cursor.mdx b/website/src/pages/cs/ai-suite/subgraph-mcp/cursor.mdx similarity index 88% rename from website/src/pages/ar/subgraphs/mcp/cursor.mdx rename to website/src/pages/cs/ai-suite/subgraph-mcp/cursor.mdx index 298f43ece048..6291caf4b06b 100644 --- a/website/src/pages/ar/subgraphs/mcp/cursor.mdx +++ b/website/src/pages/cs/ai-suite/subgraph-mcp/cursor.mdx @@ -2,7 +2,7 @@ title: Cursor --- -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. ## Prerequisites diff --git a/website/src/pages/cs/ai-suite/subgraph-mcp/introduction.mdx b/website/src/pages/cs/ai-suite/subgraph-mcp/introduction.mdx new file mode 100644 index 000000000000..da1272cf9a36 --- /dev/null +++ b/website/src/pages/cs/ai-suite/subgraph-mcp/introduction.mdx @@ -0,0 +1,22 @@ +--- +title: Subgraph MCP Introduction +sidebarTitle: 'Introduction' +--- + +Subgraph MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +It presents The Graph's Subgraph data through a set of MCP tools that any MCP-compatible client can call. With these tools, clients can search for relevant Subgraphs, inspect GraphQL schemas, and run queries against specific deployments on The Graph Network all within a single, standardized interface. + +The server itself does not hold a language model. Instead, it translates incoming MCP requests into Subgraph queries and returns the structured results, allowing the client's LLM to transform a natural-language prompt into actionable blockchain data. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Subgraph ecosystem. + +## What You Can Do + +- Access GraphQL schemas for any Subgraph on The Graph Network +- Run GraphQL queries on any Subgraph deployment +- Discover top Subgraph deployments by keyword or contract address +- Retrieve 30-day query volumes for Subgraph deployments +- Ask questions about Subgraph data without writing GraphQL manually + +The Subgraph MCP server allows smooth integration with [Claude](/ai-suite/subgraph-mcp/claude/), [Cline](/ai-suite/subgraph-mcp/cline/), or [Cursor](/ai-suite/subgraph-mcp/cursor/), making blockchain data queries with The Graph Network a conversational experience. diff --git a/website/src/pages/cs/token-api/mcp/_meta.js b/website/src/pages/cs/ai-suite/token-api-mcp/_meta.js similarity index 75% rename from website/src/pages/cs/token-api/mcp/_meta.js rename to website/src/pages/cs/ai-suite/token-api-mcp/_meta.js index 8630d4da27b3..6f527b4e53e4 100644 --- a/website/src/pages/cs/token-api/mcp/_meta.js +++ b/website/src/pages/cs/ai-suite/token-api-mcp/_meta.js @@ -1,4 +1,5 @@ export default { + introduction: '', claude: '', cline: '', cursor: '', diff --git a/website/src/pages/it/token-api/mcp/claude.mdx b/website/src/pages/cs/ai-suite/token-api-mcp/claude.mdx similarity index 100% rename from website/src/pages/it/token-api/mcp/claude.mdx rename to website/src/pages/cs/ai-suite/token-api-mcp/claude.mdx diff --git a/website/src/pages/it/token-api/mcp/cline.mdx b/website/src/pages/cs/ai-suite/token-api-mcp/cline.mdx similarity index 100% rename from website/src/pages/it/token-api/mcp/cline.mdx rename to website/src/pages/cs/ai-suite/token-api-mcp/cline.mdx diff --git a/website/src/pages/it/token-api/mcp/cursor.mdx b/website/src/pages/cs/ai-suite/token-api-mcp/cursor.mdx similarity index 100% rename from website/src/pages/it/token-api/mcp/cursor.mdx rename to website/src/pages/cs/ai-suite/token-api-mcp/cursor.mdx diff --git a/website/src/pages/cs/ai-suite/token-api-mcp/introduction.mdx b/website/src/pages/cs/ai-suite/token-api-mcp/introduction.mdx new file mode 100644 index 000000000000..b61ad0a1c485 --- /dev/null +++ b/website/src/pages/cs/ai-suite/token-api-mcp/introduction.mdx @@ -0,0 +1,23 @@ +--- +title: Token API MCP Introduction +sidebarTitle: 'Introduction' +--- + +Token API MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +This MCP server makes on-chain token data, including metadata, balances, transfers, and holder statistics, accessible through a set of MCP tools. Any compatible client can use these tools to fetch and analyze token information through a standardized interface. It connects to The Graph's hosted Token API database, enabling AI assistants to query real-time blockchain data using natural language requests that get translated into optimized SQL queries. + +The server itself does not host any language model. It simply converts MCP calls into data look-ups and returns structured results, letting the client's own LLM incorporate the results. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Token API data. + +## What You Can Do + +- Retrieve token metadata including name, symbol, decimals, total supply, and contract address +- Get token balances for any wallet address holding a supported ERC-20 token +- Fetch token transfer activity including sender, receiver, amount, and timestamp +- Identify top holders and analyze token distribution +- Ask natural language questions about token data without writing smart contract calls +- Access historical transfer data to analyze token movement over time + +The Token MCP server provides [Claude](/ai-suite/token-api-mcp/claude/), [Cline](/ai-suite/token-api-mcp/cline/), and [Cursor](/ai-suite/token-api-mcp/cursor/) with direct, conversational access to onchain token data. diff --git a/website/src/pages/cs/resources/_meta.js b/website/src/pages/cs/resources/_meta.js index aa8e2d0ec6a8..38c56cf56c43 100644 --- a/website/src/pages/cs/resources/_meta.js +++ b/website/src/pages/cs/resources/_meta.js @@ -7,5 +7,4 @@ export default { roles: titles.roles ?? '', 'migration-guides': titles['migration-guides'] ?? '', 'subgraph-studio-faq': '', - 'claude-mcp': '', } diff --git a/website/src/pages/cs/resources/claude-mcp.mdx b/website/src/pages/cs/resources/claude-mcp.mdx deleted file mode 100644 index 44ed075cffda..000000000000 --- a/website/src/pages/cs/resources/claude-mcp.mdx +++ /dev/null @@ -1,122 +0,0 @@ ---- -title: Claude MCP ---- - -This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. - -## What You Can Do - -With these integrations, you can: - -- **Token API**: Access token and wallet information across multiple blockchains -- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries - -## Prerequisites - -- [Node.js](https://nodejs.org/en/download/) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed -- API keys: - - Token API key from [The Graph Market](https://thegraph.market/) - - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -## Configuration Steps - -### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** - -Paths by operating system: - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -### 2. Add Configuration - -Replace the contents of the existing config file with: - -```json -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "ACCESS_TOKEN" - } - }, - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Keys - -Replace: - -- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) -- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -### 4. Save and Restart - -- Save the configuration file -- Restart Claude Desktop - -### 5. Add The Graph Resources in Claude - -After configuration: - -1. Start a new conversation in Claude Desktop -2. Click on the context menu (top right) -3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP - -> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. - -### 6. Run Queries - -Here are some example queries you can try after setting up the resources: - -### Subgraph Queries - -``` -What are the top pools in Uniswap? -``` - -``` -Who are the top Delegators of The Graph Protocol? -``` - -``` -Please make a bar chart for the number of active loans in Compound for the last 7 days -``` - -### Token API Queries - -``` -Show me the current price of ETH -``` - -``` -What are the top tokens by market cap on Ethereum? -``` - -``` -Analyze this wallet address: 0x... -``` - -## Troubleshooting - -If you encounter issues: - -1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal -2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file -3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs -4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop diff --git a/website/src/pages/cs/subgraphs/_meta.js b/website/src/pages/cs/subgraphs/_meta.js index 4365293ffc72..45841d5f3355 100644 --- a/website/src/pages/cs/subgraphs/_meta.js +++ b/website/src/pages/cs/subgraphs/_meta.js @@ -6,7 +6,6 @@ export default { querying: titles.querying ?? '', developing: titles.developing ?? '', billing: '', - mcp: titles.mcp ?? '', guides: titles.guides, 'best-practices': titles['best-practices'], 'fair-use-policy': '', diff --git a/website/src/pages/cs/substreams/_meta.js b/website/src/pages/cs/substreams/_meta.js index a8ee04618eae..658bb8c213c6 100644 --- a/website/src/pages/cs/substreams/_meta.js +++ b/website/src/pages/cs/substreams/_meta.js @@ -5,5 +5,4 @@ export default { introduction: '', developing: titles.developing ?? '', publishing: '', - sps: titles.sps ?? '', } diff --git a/website/src/pages/cs/token-api/_meta-titles.json b/website/src/pages/cs/token-api/_meta-titles.json index 7ed31e0af95d..3108ecd3ebfd 100644 --- a/website/src/pages/cs/token-api/_meta-titles.json +++ b/website/src/pages/cs/token-api/_meta-titles.json @@ -1,6 +1,7 @@ { "mcp": "MCP", "evm": "EVM Endpoints", + "svm": "SVM Endpoints", "monitoring": "Monitoring Endpoints", "faq": "FAQ" } diff --git a/website/src/pages/cs/token-api/_meta.js b/website/src/pages/cs/token-api/_meta.js index f67576d7f612..fb7f7334ea0c 100644 --- a/website/src/pages/cs/token-api/_meta.js +++ b/website/src/pages/cs/token-api/_meta.js @@ -2,8 +2,8 @@ import titles from './_meta-titles.json' export default { 'quick-start': '', - mcp: titles.mcp ?? '', evm: titles.evm ?? '', + svm: titles.svm ?? '', monitoring: titles.monitoring ?? '', faq: '', } diff --git a/website/src/pages/cs/token-api/svm/_meta.js b/website/src/pages/cs/token-api/svm/_meta.js new file mode 100644 index 000000000000..1a48b82fcbf1 --- /dev/null +++ b/website/src/pages/cs/token-api/svm/_meta.js @@ -0,0 +1,5 @@ +export default { + 'get-balances-svm': '', + 'get-transfers-svm': '', + 'get-swaps-svm': '', +} diff --git a/website/src/pages/cs/token-api/svm/get-balances-svm.mdx b/website/src/pages/cs/token-api/svm/get-balances-svm.mdx new file mode 100644 index 000000000000..c2946c190bf9 --- /dev/null +++ b/website/src/pages/cs/token-api/svm/get-balances-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Balances +template: + type: openApi + apiId: tokenApi + operationId: getBalancesSvm +--- + +Provides Solana tokens balances by token account address. diff --git a/website/src/pages/cs/token-api/svm/get-swaps-svm.mdx b/website/src/pages/cs/token-api/svm/get-swaps-svm.mdx new file mode 100644 index 000000000000..95282a38ac9f --- /dev/null +++ b/website/src/pages/cs/token-api/svm/get-swaps-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsSvm +--- + +Provides Raydium swap events. diff --git a/website/src/pages/cs/token-api/svm/get-transfers-svm.mdx b/website/src/pages/cs/token-api/svm/get-transfers-svm.mdx new file mode 100644 index 000000000000..5335cdddf418 --- /dev/null +++ b/website/src/pages/cs/token-api/svm/get-transfers-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersSvm +--- + +Provides SVM transfer events. diff --git a/website/src/pages/de/ai-suite/_meta-titles.json b/website/src/pages/de/ai-suite/_meta-titles.json new file mode 100644 index 000000000000..5eb482a7092b --- /dev/null +++ b/website/src/pages/de/ai-suite/_meta-titles.json @@ -0,0 +1,6 @@ +{ + "graph-assistant": "Graph Assistant", + "ai-introduction": "The Graph's AI", + "subgraph-mcp": "Subgraph MCP", + "token-api-mcp": "Token API MCP" +} diff --git a/website/src/pages/de/ai-suite/_meta.js b/website/src/pages/de/ai-suite/_meta.js new file mode 100644 index 000000000000..c9e51dfd35fb --- /dev/null +++ b/website/src/pages/de/ai-suite/_meta.js @@ -0,0 +1,8 @@ +import titles from './_meta-titles.json' + +export default { + 'ai-introduction': titles['ai-introduction'], + 'graph-assistant': titles['graph-assistant'], + 'subgraph-mcp': titles['subgraph-mcp'], + 'token-api-mcp': titles['token-api-mcp'], +} diff --git a/website/src/pages/de/ai-suite/ai-introduction.mdx b/website/src/pages/de/ai-suite/ai-introduction.mdx new file mode 100644 index 000000000000..d25cc9f77358 --- /dev/null +++ b/website/src/pages/de/ai-suite/ai-introduction.mdx @@ -0,0 +1,58 @@ +--- +title: The Graph's AI +--- + +Build with speed and scale faster with The Graph's AI. + +## Using AI on The Graph + +Instead of relying on static datasets or centralized APIs, you can now access live blockchain data through our **agentic** app, [Graph Assistant](/ai-suite/graph-assistant/introduction/), and use our AI-native tooling, [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/), and [Token API MCP](/ai-suite/token-api-mcp/introduction/). + +### Why Use Onchain Data with AI? + +Using onchain data with AI unlocks powerful new ways to interact with and understand blockchain ecosystems. + +- **AI for Non-Technical End Users**: AI can turn complex onchain data into accessible insights. Assistants powered by AI enable you to explore and analyze blockchain data without coding. +- **AI for Developers**: You can use AI to interact directly with The Graph's data through your agents or build AI-powered applications on top of it. This streamlines development and opens up more intuitive, dynamic use cases. + +## AI for Non-Technical/End Users + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) is a powerful **agentic** application that empowers users to easily interact with blockchain data. Ask questions in simple, natural language and get rich, AI powered insights. Both technical developers and non-technical product teams can move faster, make smarter decisions, and gain a clearer understanding than ever before. + +### Benefits of Using Graph Assistant + +- **Natural language Input**: You don't need to write complex queries or sift through dashboards. Simply ask your question in plain English and get clear, structured results. +- **Multi-source support**: Works across multiple Subgraphs and Token API. The Assistant automatically determines which data source to use, so you don't have to switch tools or manage endpoints. +- **Schema-free access**: You don't need to understand the schema. You can refer to tokens, protocols, dates, or addresses using natural language. The Assistant takes care of the rest. + +### Conversational Querying with Graph Assistant + +**Example queries:** + +- "List the top-5 swaps by USD value in the last 24 hours." +- "Give me the daily volume on Uniswap." +- "List the 20 most recently registered .eth names." + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) will eventually be a one-stop shop for interacting with The Graph. Right now, it's an agentic AI app that uses state-of-the-art AI techniques, LLMs, and MCPs to understand and answer your questions about [Subgraphs](/subgraphs/developing/subgraphs/) and [Token API](/token-api/quick-start/) data. + +## AI for Developers + +### Enable Natural Language Access to Onchain Data + +[Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) servers connect to Claude, Cline, and Cursor. They enable models to understand, query, and interact with structured onchain data using natural language. MCPs remove the need to write low-level queries or interact with APIs directly. + +### Subgraph MCP + +The [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/) server connects models to Subgraphs on The Graph Network. It allows language models to explore Subgraph schemas, execute GraphQL queries, find relevant Subgraphs by keyword or contract, and surface usage metrics using natural language. + +### Token API MCP + +The [Token API MCP](/ai-suite/token-api-mcp/introduction/) MCP server enables models to access onchain token data. It supports querying token metadata, wallet balances, transfer history, and top token holders through simple prompts. + +#### Benefits of Using Subgraph and Token API MCPs + +- Query Subgraphs and token data using natural language +- Access GraphQL schemas and token metadata without manual queries +- Find Subgraphs by keyword or contract and check 30-day usage +- Retrieve real-time data from The Graph and onchain token sources +- Get wallet balances, transfer history, and top token holders diff --git a/website/src/pages/de/ai-suite/graph-assistant/_meta.js b/website/src/pages/de/ai-suite/graph-assistant/_meta.js new file mode 100644 index 000000000000..74da5e0686a7 --- /dev/null +++ b/website/src/pages/de/ai-suite/graph-assistant/_meta.js @@ -0,0 +1,6 @@ +export default { + 'quick-start': '', + introduction: '', + 'how-to-guide': '', + faq: '', +} diff --git a/website/src/pages/de/ai-suite/graph-assistant/faq.mdx b/website/src/pages/de/ai-suite/graph-assistant/faq.mdx new file mode 100644 index 000000000000..8addf9935524 --- /dev/null +++ b/website/src/pages/de/ai-suite/graph-assistant/faq.mdx @@ -0,0 +1,26 @@ +--- +title: Graph Assistant FAQ +sidebarTitle: 'FAQ' +--- + +This page summarizes some of the most common questions for developers using Graph Assistant. + +1. What is The Graph Assistant? + +The Graph Assistant is an AI-powered chat interface that lets you query blockchain data in plain English. Under the hood, it translates your questions into GraphQL calls against Subgraphs and the Token API, then returns results, no coding required. + +2. What is an agentic application? + +An agentic application combines AI-driven reasoning with external data sources or APIs to take autonomous actions on your behalf. In this case, Graph Assistant acts as an “agent” that interprets your natural-language prompts, builds and dispatches GraphQL queries, and formats the results so that you don't need to write or manage queries yourself. + +3. Which networks and data does Graph Assistant support? + +The Assistant has access to Subgraphs across multiple chains. If a Subgraph is published to The Graph Network and is being indexed, the Assistant can automatically route queries to it. The Assistant also has access to the Token API on Ethereum Mainnet, BSC, Unichain, Arbitrum-One, Optimism, and Polygon. + +4. Is there a usage limit or quota? + +Yes, 10 questions per hour. + +5. What if the Assistant can't interpret my question? + +When the Assistant fails to parse your intent (for example, ambiguous token name, missing context, or an unsupported request), it will prompt you for clarification. For instance, it might ask, “Did you mean XYZ on Ethereum or XYZ on Arbitrum?” or “Please specify a date range for this query.” If you continue to see parsing errors, check that you're using correct token symbols or specifying networks and time frames clearly. diff --git a/website/src/pages/de/ai-suite/graph-assistant/how-to-guide.mdx b/website/src/pages/de/ai-suite/graph-assistant/how-to-guide.mdx new file mode 100644 index 000000000000..463130894ad8 --- /dev/null +++ b/website/src/pages/de/ai-suite/graph-assistant/how-to-guide.mdx @@ -0,0 +1,56 @@ +--- +title: How To Use The Graph Assistant +sidebarTitle: 'How-to Guide' +--- + +## Overview + +You type a natural language question into the chat interface, such as: + +```yaml +'On Uniswap, return the top-10 pools by total value locked in USD.' +``` + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the underlying agents. Do not share sensitive, personal, or private information. + +### Behind the Scenes + +The Assistant: + +1. Interprets your intent +2. Maps it to the correct Subgraphs or Token API endpoint +3. Executes optimized queries +4. Returns clean, structured results + +You don't need to write queries or understand a Subgraph's schema, you simply ask. + +### Example Use Cases + +**Protocol Analytics** + +- “Compare daily active users on Aave vs. Compound in May 2025.” +- “Show me the total value locked (TVL) for XYZDAO over the last quarter.” + +**Token Insights** + +- “What are the top 10 tokens by market cap on Ethereum right now?” +- “How many XYZ did I receive between May 1 and May 15?” + +**Historical Data Retrieval** + +- “Fetch the token price history of XYZ for the last six months.” +- “What was the average gas price on Ethereum during April?” + +**Portfolio Monitoring** + +- “List my wallet’s current token balances and their USD equivalents.” +- “Calculate profit/loss on XYZ since xyz date.” + +**Cross-Chain Comparison** + +- “Show me the 7-day trading volume of XYZ on Ethereum vs. Polygon.” +- “How many XYZ swaps occurred on Arbitrum yesterday?” + +To get started follow the [quickstart](/ai-suite/graph-assistant/quick-start/) and explore its capabilities. diff --git a/website/src/pages/de/ai-suite/graph-assistant/introduction.mdx b/website/src/pages/de/ai-suite/graph-assistant/introduction.mdx new file mode 100644 index 000000000000..65fdf0f96028 --- /dev/null +++ b/website/src/pages/de/ai-suite/graph-assistant/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +[Graph Assistant](https://thegraph.com/graph-assistant) (Beta) gives instant, code-free access to blockchain data, transforming natural language into precise, AI-powered queries without the need to code. + +## Overview + +[Graph Assistant](https://thegraph.com/graph-assistant) is an advanced, [agentic](/en/ai-suite/graph-assistant/faq/) easy-to-use chat interface for querying blockchain data using natural language. Unlike a basic chatbot, Graph Assistant can understand your intent, build complex queries, and execute them automatically. This gives you rich, AI-powered insights from onchain data without writing any code. + +- **Automatically** interprets user intent, generates precise queries, executes them via The Graph's Subgraphs and Token API, and presents structured, AI-powered answers without requiring any code. +- **Removes** the technical complexity found in traditional dashboards or chatbots. It provides composable insights directly from indexed Subgraphs and Token datasets. + +## Core Features + +| Feature | Description | +| --- | --- | +| **Friendly Interface** | Conversational access to blockchain data via natural language. You simply ask questions, the Assistant fetches the answer, and renders results. | +| **Backed by Subgraphs** | Uses subgraphs to index protocol-specific data like transactions, events, and protocol metrics. | +| **Backed by Token API** | Uses Token API for token-level information like balances, transfers, and metadata. | +| **No Setup Required** | No need to configure data sources or write queries. | +| **Automatic Query Building** | The Assistant performs complex queries such as fetching historical token volumes, protocol analytics, or cross-chain data and handles filtering, pagination, and joins across Subgraphs automatically. | + +## Help Shape What's Next + +This is in **beta**, and community input is essential. If you have ideas, questions, or run into anything unexpected, we'd love to hear from you: + +- Join the community on [Discord](https://discord.com/invite/graphprotocol): Provide feedback and stay in the loop with other builders. You'll be able to join the `#graph-assistant` channel to share your experience directly. +- Interested in going deeper? Reach out to become a dedicated beta tester so your specific use case can be better supported. diff --git a/website/src/pages/de/ai-suite/graph-assistant/quick-start.mdx b/website/src/pages/de/ai-suite/graph-assistant/quick-start.mdx new file mode 100644 index 000000000000..13f8478b8d2b --- /dev/null +++ b/website/src/pages/de/ai-suite/graph-assistant/quick-start.mdx @@ -0,0 +1,44 @@ +--- +title: Quick Start +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +This guide provides step-by-step instructions for getting started with Graph Assistant quickly. + +## Step-by Step + +### Step 1. Create an Account + +Go to: [Graph Assistant](https://thegraph.com/graph-assistant) + +- Click Sign Up (or Log In if you already have an account). +- Use your Google, GitHub, X, email or wallet credentials to log in. +- No additional setup is required. + +### Step 2. Open the Assistant Chat + +After logging in: + +- You'll see Graph Assistant's interface. +- At the bottom of the page, you will find a chat input bar. This is where you will interact with the Assistant. + +### Step 3: Ask Your First Question + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +In the input bar, type a natural-language query (everyday language). + +Example: + +```yaml +Show me the 24-hour trading volume of XYZ token on Ethereum +``` + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the AI interface. Do not share sensitive, personal, or private information. + +The Assistant will: + +- Digest your question +- Fetch onchain data using Subgraphs or the Token API +- Return a clean, formatted response with the data you need diff --git a/website/src/pages/de/ai-suite/subgraph-mcp/_meta.js b/website/src/pages/de/ai-suite/subgraph-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/de/ai-suite/subgraph-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/ar/subgraphs/mcp/claude.mdx b/website/src/pages/de/ai-suite/subgraph-mcp/claude.mdx similarity index 87% rename from website/src/pages/ar/subgraphs/mcp/claude.mdx rename to website/src/pages/de/ai-suite/subgraph-mcp/claude.mdx index 027b272cb942..ff3caa4e3e7f 100644 --- a/website/src/pages/ar/subgraphs/mcp/claude.mdx +++ b/website/src/pages/de/ai-suite/subgraph-mcp/claude.mdx @@ -2,17 +2,7 @@ title: Claude Desktop --- -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. - -## What You Can Do - -The Subgraph MCP integration enables you to: - -- Access the GraphQL schema for any Subgraph on The Graph Network -- Execute GraphQL queries against any Subgraph deployment -- Find top Subgraph deployments for a given keyword or contract address -- Get 30-day query volume for Subgraph deployments -- Ask natural language questions about Subgraph data without writing GraphQL queries manually +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data via natural language conversations with Claude. ## Prerequisites diff --git a/website/src/pages/es/subgraphs/mcp/cline.mdx b/website/src/pages/de/ai-suite/subgraph-mcp/cline.mdx similarity index 89% rename from website/src/pages/es/subgraphs/mcp/cline.mdx rename to website/src/pages/de/ai-suite/subgraph-mcp/cline.mdx index 156221d9a127..eb8044bfe991 100644 --- a/website/src/pages/es/subgraphs/mcp/cline.mdx +++ b/website/src/pages/de/ai-suite/subgraph-mcp/cline.mdx @@ -2,7 +2,7 @@ title: Cline --- -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. ## Prerequisites diff --git a/website/src/pages/cs/subgraphs/mcp/cursor.mdx b/website/src/pages/de/ai-suite/subgraph-mcp/cursor.mdx similarity index 88% rename from website/src/pages/cs/subgraphs/mcp/cursor.mdx rename to website/src/pages/de/ai-suite/subgraph-mcp/cursor.mdx index 298f43ece048..6291caf4b06b 100644 --- a/website/src/pages/cs/subgraphs/mcp/cursor.mdx +++ b/website/src/pages/de/ai-suite/subgraph-mcp/cursor.mdx @@ -2,7 +2,7 @@ title: Cursor --- -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. ## Prerequisites diff --git a/website/src/pages/de/ai-suite/subgraph-mcp/introduction.mdx b/website/src/pages/de/ai-suite/subgraph-mcp/introduction.mdx new file mode 100644 index 000000000000..da1272cf9a36 --- /dev/null +++ b/website/src/pages/de/ai-suite/subgraph-mcp/introduction.mdx @@ -0,0 +1,22 @@ +--- +title: Subgraph MCP Introduction +sidebarTitle: 'Introduction' +--- + +Subgraph MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +It presents The Graph's Subgraph data through a set of MCP tools that any MCP-compatible client can call. With these tools, clients can search for relevant Subgraphs, inspect GraphQL schemas, and run queries against specific deployments on The Graph Network all within a single, standardized interface. + +The server itself does not hold a language model. Instead, it translates incoming MCP requests into Subgraph queries and returns the structured results, allowing the client's LLM to transform a natural-language prompt into actionable blockchain data. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Subgraph ecosystem. + +## What You Can Do + +- Access GraphQL schemas for any Subgraph on The Graph Network +- Run GraphQL queries on any Subgraph deployment +- Discover top Subgraph deployments by keyword or contract address +- Retrieve 30-day query volumes for Subgraph deployments +- Ask questions about Subgraph data without writing GraphQL manually + +The Subgraph MCP server allows smooth integration with [Claude](/ai-suite/subgraph-mcp/claude/), [Cline](/ai-suite/subgraph-mcp/cline/), or [Cursor](/ai-suite/subgraph-mcp/cursor/), making blockchain data queries with The Graph Network a conversational experience. diff --git a/website/src/pages/de/ai-suite/token-api-mcp/_meta.js b/website/src/pages/de/ai-suite/token-api-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/de/ai-suite/token-api-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/ko/token-api/mcp/claude.mdx b/website/src/pages/de/ai-suite/token-api-mcp/claude.mdx similarity index 100% rename from website/src/pages/ko/token-api/mcp/claude.mdx rename to website/src/pages/de/ai-suite/token-api-mcp/claude.mdx diff --git a/website/src/pages/ko/token-api/mcp/cline.mdx b/website/src/pages/de/ai-suite/token-api-mcp/cline.mdx similarity index 100% rename from website/src/pages/ko/token-api/mcp/cline.mdx rename to website/src/pages/de/ai-suite/token-api-mcp/cline.mdx diff --git a/website/src/pages/ko/token-api/mcp/cursor.mdx b/website/src/pages/de/ai-suite/token-api-mcp/cursor.mdx similarity index 100% rename from website/src/pages/ko/token-api/mcp/cursor.mdx rename to website/src/pages/de/ai-suite/token-api-mcp/cursor.mdx diff --git a/website/src/pages/de/ai-suite/token-api-mcp/introduction.mdx b/website/src/pages/de/ai-suite/token-api-mcp/introduction.mdx new file mode 100644 index 000000000000..b61ad0a1c485 --- /dev/null +++ b/website/src/pages/de/ai-suite/token-api-mcp/introduction.mdx @@ -0,0 +1,23 @@ +--- +title: Token API MCP Introduction +sidebarTitle: 'Introduction' +--- + +Token API MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +This MCP server makes on-chain token data, including metadata, balances, transfers, and holder statistics, accessible through a set of MCP tools. Any compatible client can use these tools to fetch and analyze token information through a standardized interface. It connects to The Graph's hosted Token API database, enabling AI assistants to query real-time blockchain data using natural language requests that get translated into optimized SQL queries. + +The server itself does not host any language model. It simply converts MCP calls into data look-ups and returns structured results, letting the client's own LLM incorporate the results. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Token API data. + +## What You Can Do + +- Retrieve token metadata including name, symbol, decimals, total supply, and contract address +- Get token balances for any wallet address holding a supported ERC-20 token +- Fetch token transfer activity including sender, receiver, amount, and timestamp +- Identify top holders and analyze token distribution +- Ask natural language questions about token data without writing smart contract calls +- Access historical transfer data to analyze token movement over time + +The Token MCP server provides [Claude](/ai-suite/token-api-mcp/claude/), [Cline](/ai-suite/token-api-mcp/cline/), and [Cursor](/ai-suite/token-api-mcp/cursor/) with direct, conversational access to onchain token data. diff --git a/website/src/pages/de/resources/_meta.js b/website/src/pages/de/resources/_meta.js index aa8e2d0ec6a8..38c56cf56c43 100644 --- a/website/src/pages/de/resources/_meta.js +++ b/website/src/pages/de/resources/_meta.js @@ -7,5 +7,4 @@ export default { roles: titles.roles ?? '', 'migration-guides': titles['migration-guides'] ?? '', 'subgraph-studio-faq': '', - 'claude-mcp': '', } diff --git a/website/src/pages/de/resources/claude-mcp.mdx b/website/src/pages/de/resources/claude-mcp.mdx deleted file mode 100644 index 44ed075cffda..000000000000 --- a/website/src/pages/de/resources/claude-mcp.mdx +++ /dev/null @@ -1,122 +0,0 @@ ---- -title: Claude MCP ---- - -This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. - -## What You Can Do - -With these integrations, you can: - -- **Token API**: Access token and wallet information across multiple blockchains -- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries - -## Prerequisites - -- [Node.js](https://nodejs.org/en/download/) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed -- API keys: - - Token API key from [The Graph Market](https://thegraph.market/) - - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -## Configuration Steps - -### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** - -Paths by operating system: - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -### 2. Add Configuration - -Replace the contents of the existing config file with: - -```json -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "ACCESS_TOKEN" - } - }, - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Keys - -Replace: - -- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) -- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -### 4. Save and Restart - -- Save the configuration file -- Restart Claude Desktop - -### 5. Add The Graph Resources in Claude - -After configuration: - -1. Start a new conversation in Claude Desktop -2. Click on the context menu (top right) -3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP - -> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. - -### 6. Run Queries - -Here are some example queries you can try after setting up the resources: - -### Subgraph Queries - -``` -What are the top pools in Uniswap? -``` - -``` -Who are the top Delegators of The Graph Protocol? -``` - -``` -Please make a bar chart for the number of active loans in Compound for the last 7 days -``` - -### Token API Queries - -``` -Show me the current price of ETH -``` - -``` -What are the top tokens by market cap on Ethereum? -``` - -``` -Analyze this wallet address: 0x... -``` - -## Troubleshooting - -If you encounter issues: - -1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal -2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file -3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs -4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop diff --git a/website/src/pages/de/subgraphs/_meta.js b/website/src/pages/de/subgraphs/_meta.js index 4365293ffc72..45841d5f3355 100644 --- a/website/src/pages/de/subgraphs/_meta.js +++ b/website/src/pages/de/subgraphs/_meta.js @@ -6,7 +6,6 @@ export default { querying: titles.querying ?? '', developing: titles.developing ?? '', billing: '', - mcp: titles.mcp ?? '', guides: titles.guides, 'best-practices': titles['best-practices'], 'fair-use-policy': '', diff --git a/website/src/pages/de/subgraphs/mcp/_meta.js b/website/src/pages/de/subgraphs/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/de/subgraphs/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/de/substreams/_meta.js b/website/src/pages/de/substreams/_meta.js index a8ee04618eae..658bb8c213c6 100644 --- a/website/src/pages/de/substreams/_meta.js +++ b/website/src/pages/de/substreams/_meta.js @@ -5,5 +5,4 @@ export default { introduction: '', developing: titles.developing ?? '', publishing: '', - sps: titles.sps ?? '', } diff --git a/website/src/pages/de/token-api/_meta-titles.json b/website/src/pages/de/token-api/_meta-titles.json index 7ed31e0af95d..3108ecd3ebfd 100644 --- a/website/src/pages/de/token-api/_meta-titles.json +++ b/website/src/pages/de/token-api/_meta-titles.json @@ -1,6 +1,7 @@ { "mcp": "MCP", "evm": "EVM Endpoints", + "svm": "SVM Endpoints", "monitoring": "Monitoring Endpoints", "faq": "FAQ" } diff --git a/website/src/pages/de/token-api/_meta.js b/website/src/pages/de/token-api/_meta.js index f67576d7f612..fb7f7334ea0c 100644 --- a/website/src/pages/de/token-api/_meta.js +++ b/website/src/pages/de/token-api/_meta.js @@ -2,8 +2,8 @@ import titles from './_meta-titles.json' export default { 'quick-start': '', - mcp: titles.mcp ?? '', evm: titles.evm ?? '', + svm: titles.svm ?? '', monitoring: titles.monitoring ?? '', faq: '', } diff --git a/website/src/pages/de/token-api/mcp/_meta.js b/website/src/pages/de/token-api/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/de/token-api/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/de/token-api/mcp/claude.mdx b/website/src/pages/de/token-api/mcp/claude.mdx deleted file mode 100644 index 2e1ddca9cce7..000000000000 --- a/website/src/pages/de/token-api/mcp/claude.mdx +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: Using Claude Desktop to Access the Token API via MCP -sidebarTitle: Claude Desktop ---- - -## Voraussetzungen - -- [Claude Desktop](https://claude.ai/download) installed. -- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. -- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. - -![Screenshot of Claude Desktop's settings panel showing the MCP server configuration option.](/img/claude-preview-token-api.png) - -## Konfiguration - -Create or edit your `claude_desktop_config.json` file. - -> **Settings** > **Developer** > **Edit Config** - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -```json label="claude_desktop_config.json" -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -## Troubleshooting - -To enable logs for the MCP, use the `--verbose true` option. - -### ENOENT - -![Error dialog in Claude Desktop showing 'ENOENT' system error, indicating the npx/bunx command wasn't found in the system path.](/img/claude-ENOENT.png) - -Try to use the full path of the command instead: - -- Run `which npx` or `which bunx` to get the path of the command. -- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). - -### Server disconnected - -![Connection error notification in Claude Desktop displaying 'Server disconnected' message.](/img/claude-server-disconnect.png) - -Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. - -> You can always have a look at the full logs under `Claude/logs/mcp.log` and `Claude/logs/mcp-server-pinax.log` for more details. diff --git a/website/src/pages/de/token-api/mcp/cline.mdx b/website/src/pages/de/token-api/mcp/cline.mdx deleted file mode 100644 index 08d2f943ae4c..000000000000 --- a/website/src/pages/de/token-api/mcp/cline.mdx +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Using Cline to Access the Token API via MCP -sidebarTitle: Cline ---- - -## Voraussetzungen - -- [Cline](https://cline.bot/) installed. -- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. -- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. - -![Screenshot of Cline's MCP server configuration interface displaying the JSON settings file with mcp-pinax server details visible.](/img/cline-preview-token-api.png) - -## Konfiguration - -Create or edit your `cline_mcp_settings.json` file. - -> **MCP Servers** > **Installed** > **Configure MCP Servers** - -```json label="cline_mcp_settings.json" -{ - "mcpServers": { - "mcp-pinax": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -## Troubleshooting - -To enable logs for the MCP, use the `--verbose true` option. - -### ENOENT - -![Cline error dialog showing 'ENOENT' system alert.](/img/cline-error.png) - -Try to use the full path of the command instead: - -- Run `which npx` or `which bunx` to get the path of the command. -- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). - -### Server disconnected - -![Cline connection error notification displaying server disconnection warning.](/img/cline-missing-variables.png) - -Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/de/token-api/mcp/cursor.mdx b/website/src/pages/de/token-api/mcp/cursor.mdx deleted file mode 100644 index 93fd886ddfbb..000000000000 --- a/website/src/pages/de/token-api/mcp/cursor.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Using Cursor to Access the Token API via MCP -sidebarTitle: Cursor ---- - -## Voraussetzungen - -- [Cursor](https://www.cursor.com/) installed. -- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. -- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. - -![Screenshot of Cursor's MCP configuration panel.](/img/cursor-preview-token-api.png) - -## Konfiguration - -Create or edit your `~/.cursor/mcp.json` file. - -> **Cursor Settings** > **MCP** > **Add new global MCP Server** - -```json label="mcp.json" -{ - "mcpServers": { - "mcp-pinax": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -## Troubleshooting - -![Cursor IDE error notification that reads, "Failed to create client"](/img/cursor-error.png) - -To enable logs for the MCP, use the `--verbose true` option. - -### ENOENT - -Try to use the full path of the command instead: - -- Run `which npx` or `which bunx` to get the path of the command. -- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). - -### Server disconnected - -Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/de/token-api/svm/_meta.js b/website/src/pages/de/token-api/svm/_meta.js new file mode 100644 index 000000000000..1a48b82fcbf1 --- /dev/null +++ b/website/src/pages/de/token-api/svm/_meta.js @@ -0,0 +1,5 @@ +export default { + 'get-balances-svm': '', + 'get-transfers-svm': '', + 'get-swaps-svm': '', +} diff --git a/website/src/pages/de/token-api/svm/get-balances-svm.mdx b/website/src/pages/de/token-api/svm/get-balances-svm.mdx new file mode 100644 index 000000000000..c2946c190bf9 --- /dev/null +++ b/website/src/pages/de/token-api/svm/get-balances-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Balances +template: + type: openApi + apiId: tokenApi + operationId: getBalancesSvm +--- + +Provides Solana tokens balances by token account address. diff --git a/website/src/pages/de/token-api/svm/get-swaps-svm.mdx b/website/src/pages/de/token-api/svm/get-swaps-svm.mdx new file mode 100644 index 000000000000..95282a38ac9f --- /dev/null +++ b/website/src/pages/de/token-api/svm/get-swaps-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsSvm +--- + +Provides Raydium swap events. diff --git a/website/src/pages/de/token-api/svm/get-transfers-svm.mdx b/website/src/pages/de/token-api/svm/get-transfers-svm.mdx new file mode 100644 index 000000000000..5335cdddf418 --- /dev/null +++ b/website/src/pages/de/token-api/svm/get-transfers-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersSvm +--- + +Provides SVM transfer events. diff --git a/website/src/pages/en/token-api/_meta-titles.json b/website/src/pages/en/token-api/_meta-titles.json index b606a87808a1..d58b9770c3e5 100644 --- a/website/src/pages/en/token-api/_meta-titles.json +++ b/website/src/pages/en/token-api/_meta-titles.json @@ -1,5 +1,6 @@ { "evm": "EVM Endpoints", + "svm": "SVM Endpoints", "monitoring": "Monitoring Endpoints", "faq": "FAQ" } diff --git a/website/src/pages/en/token-api/_meta.js b/website/src/pages/en/token-api/_meta.js index 39b28f89b7b4..fb7f7334ea0c 100644 --- a/website/src/pages/en/token-api/_meta.js +++ b/website/src/pages/en/token-api/_meta.js @@ -3,6 +3,7 @@ import titles from './_meta-titles.json' export default { 'quick-start': '', evm: titles.evm ?? '', + svm: titles.svm ?? '', monitoring: titles.monitoring ?? '', faq: '', } diff --git a/website/src/pages/en/token-api/svm/_meta.js b/website/src/pages/en/token-api/svm/_meta.js new file mode 100644 index 000000000000..1a48b82fcbf1 --- /dev/null +++ b/website/src/pages/en/token-api/svm/_meta.js @@ -0,0 +1,5 @@ +export default { + 'get-balances-svm': '', + 'get-transfers-svm': '', + 'get-swaps-svm': '', +} diff --git a/website/src/pages/en/token-api/svm/get-balances-svm.mdx b/website/src/pages/en/token-api/svm/get-balances-svm.mdx new file mode 100644 index 000000000000..c2946c190bf9 --- /dev/null +++ b/website/src/pages/en/token-api/svm/get-balances-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Balances +template: + type: openApi + apiId: tokenApi + operationId: getBalancesSvm +--- + +Provides Solana tokens balances by token account address. diff --git a/website/src/pages/en/token-api/svm/get-swaps-svm.mdx b/website/src/pages/en/token-api/svm/get-swaps-svm.mdx new file mode 100644 index 000000000000..95282a38ac9f --- /dev/null +++ b/website/src/pages/en/token-api/svm/get-swaps-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsSvm +--- + +Provides Raydium swap events. diff --git a/website/src/pages/en/token-api/svm/get-transfers-svm.mdx b/website/src/pages/en/token-api/svm/get-transfers-svm.mdx new file mode 100644 index 000000000000..5335cdddf418 --- /dev/null +++ b/website/src/pages/en/token-api/svm/get-transfers-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersSvm +--- + +Provides SVM transfer events. diff --git a/website/src/pages/es/ai-suite/_meta-titles.json b/website/src/pages/es/ai-suite/_meta-titles.json new file mode 100644 index 000000000000..5eb482a7092b --- /dev/null +++ b/website/src/pages/es/ai-suite/_meta-titles.json @@ -0,0 +1,6 @@ +{ + "graph-assistant": "Graph Assistant", + "ai-introduction": "The Graph's AI", + "subgraph-mcp": "Subgraph MCP", + "token-api-mcp": "Token API MCP" +} diff --git a/website/src/pages/es/ai-suite/_meta.js b/website/src/pages/es/ai-suite/_meta.js new file mode 100644 index 000000000000..c9e51dfd35fb --- /dev/null +++ b/website/src/pages/es/ai-suite/_meta.js @@ -0,0 +1,8 @@ +import titles from './_meta-titles.json' + +export default { + 'ai-introduction': titles['ai-introduction'], + 'graph-assistant': titles['graph-assistant'], + 'subgraph-mcp': titles['subgraph-mcp'], + 'token-api-mcp': titles['token-api-mcp'], +} diff --git a/website/src/pages/es/ai-suite/ai-introduction.mdx b/website/src/pages/es/ai-suite/ai-introduction.mdx new file mode 100644 index 000000000000..d25cc9f77358 --- /dev/null +++ b/website/src/pages/es/ai-suite/ai-introduction.mdx @@ -0,0 +1,58 @@ +--- +title: The Graph's AI +--- + +Build with speed and scale faster with The Graph's AI. + +## Using AI on The Graph + +Instead of relying on static datasets or centralized APIs, you can now access live blockchain data through our **agentic** app, [Graph Assistant](/ai-suite/graph-assistant/introduction/), and use our AI-native tooling, [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/), and [Token API MCP](/ai-suite/token-api-mcp/introduction/). + +### Why Use Onchain Data with AI? + +Using onchain data with AI unlocks powerful new ways to interact with and understand blockchain ecosystems. + +- **AI for Non-Technical End Users**: AI can turn complex onchain data into accessible insights. Assistants powered by AI enable you to explore and analyze blockchain data without coding. +- **AI for Developers**: You can use AI to interact directly with The Graph's data through your agents or build AI-powered applications on top of it. This streamlines development and opens up more intuitive, dynamic use cases. + +## AI for Non-Technical/End Users + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) is a powerful **agentic** application that empowers users to easily interact with blockchain data. Ask questions in simple, natural language and get rich, AI powered insights. Both technical developers and non-technical product teams can move faster, make smarter decisions, and gain a clearer understanding than ever before. + +### Benefits of Using Graph Assistant + +- **Natural language Input**: You don't need to write complex queries or sift through dashboards. Simply ask your question in plain English and get clear, structured results. +- **Multi-source support**: Works across multiple Subgraphs and Token API. The Assistant automatically determines which data source to use, so you don't have to switch tools or manage endpoints. +- **Schema-free access**: You don't need to understand the schema. You can refer to tokens, protocols, dates, or addresses using natural language. The Assistant takes care of the rest. + +### Conversational Querying with Graph Assistant + +**Example queries:** + +- "List the top-5 swaps by USD value in the last 24 hours." +- "Give me the daily volume on Uniswap." +- "List the 20 most recently registered .eth names." + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) will eventually be a one-stop shop for interacting with The Graph. Right now, it's an agentic AI app that uses state-of-the-art AI techniques, LLMs, and MCPs to understand and answer your questions about [Subgraphs](/subgraphs/developing/subgraphs/) and [Token API](/token-api/quick-start/) data. + +## AI for Developers + +### Enable Natural Language Access to Onchain Data + +[Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) servers connect to Claude, Cline, and Cursor. They enable models to understand, query, and interact with structured onchain data using natural language. MCPs remove the need to write low-level queries or interact with APIs directly. + +### Subgraph MCP + +The [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/) server connects models to Subgraphs on The Graph Network. It allows language models to explore Subgraph schemas, execute GraphQL queries, find relevant Subgraphs by keyword or contract, and surface usage metrics using natural language. + +### Token API MCP + +The [Token API MCP](/ai-suite/token-api-mcp/introduction/) MCP server enables models to access onchain token data. It supports querying token metadata, wallet balances, transfer history, and top token holders through simple prompts. + +#### Benefits of Using Subgraph and Token API MCPs + +- Query Subgraphs and token data using natural language +- Access GraphQL schemas and token metadata without manual queries +- Find Subgraphs by keyword or contract and check 30-day usage +- Retrieve real-time data from The Graph and onchain token sources +- Get wallet balances, transfer history, and top token holders diff --git a/website/src/pages/es/ai-suite/graph-assistant/_meta.js b/website/src/pages/es/ai-suite/graph-assistant/_meta.js new file mode 100644 index 000000000000..74da5e0686a7 --- /dev/null +++ b/website/src/pages/es/ai-suite/graph-assistant/_meta.js @@ -0,0 +1,6 @@ +export default { + 'quick-start': '', + introduction: '', + 'how-to-guide': '', + faq: '', +} diff --git a/website/src/pages/es/ai-suite/graph-assistant/faq.mdx b/website/src/pages/es/ai-suite/graph-assistant/faq.mdx new file mode 100644 index 000000000000..8addf9935524 --- /dev/null +++ b/website/src/pages/es/ai-suite/graph-assistant/faq.mdx @@ -0,0 +1,26 @@ +--- +title: Graph Assistant FAQ +sidebarTitle: 'FAQ' +--- + +This page summarizes some of the most common questions for developers using Graph Assistant. + +1. What is The Graph Assistant? + +The Graph Assistant is an AI-powered chat interface that lets you query blockchain data in plain English. Under the hood, it translates your questions into GraphQL calls against Subgraphs and the Token API, then returns results, no coding required. + +2. What is an agentic application? + +An agentic application combines AI-driven reasoning with external data sources or APIs to take autonomous actions on your behalf. In this case, Graph Assistant acts as an “agent” that interprets your natural-language prompts, builds and dispatches GraphQL queries, and formats the results so that you don't need to write or manage queries yourself. + +3. Which networks and data does Graph Assistant support? + +The Assistant has access to Subgraphs across multiple chains. If a Subgraph is published to The Graph Network and is being indexed, the Assistant can automatically route queries to it. The Assistant also has access to the Token API on Ethereum Mainnet, BSC, Unichain, Arbitrum-One, Optimism, and Polygon. + +4. Is there a usage limit or quota? + +Yes, 10 questions per hour. + +5. What if the Assistant can't interpret my question? + +When the Assistant fails to parse your intent (for example, ambiguous token name, missing context, or an unsupported request), it will prompt you for clarification. For instance, it might ask, “Did you mean XYZ on Ethereum or XYZ on Arbitrum?” or “Please specify a date range for this query.” If you continue to see parsing errors, check that you're using correct token symbols or specifying networks and time frames clearly. diff --git a/website/src/pages/es/ai-suite/graph-assistant/how-to-guide.mdx b/website/src/pages/es/ai-suite/graph-assistant/how-to-guide.mdx new file mode 100644 index 000000000000..463130894ad8 --- /dev/null +++ b/website/src/pages/es/ai-suite/graph-assistant/how-to-guide.mdx @@ -0,0 +1,56 @@ +--- +title: How To Use The Graph Assistant +sidebarTitle: 'How-to Guide' +--- + +## Overview + +You type a natural language question into the chat interface, such as: + +```yaml +'On Uniswap, return the top-10 pools by total value locked in USD.' +``` + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the underlying agents. Do not share sensitive, personal, or private information. + +### Behind the Scenes + +The Assistant: + +1. Interprets your intent +2. Maps it to the correct Subgraphs or Token API endpoint +3. Executes optimized queries +4. Returns clean, structured results + +You don't need to write queries or understand a Subgraph's schema, you simply ask. + +### Example Use Cases + +**Protocol Analytics** + +- “Compare daily active users on Aave vs. Compound in May 2025.” +- “Show me the total value locked (TVL) for XYZDAO over the last quarter.” + +**Token Insights** + +- “What are the top 10 tokens by market cap on Ethereum right now?” +- “How many XYZ did I receive between May 1 and May 15?” + +**Historical Data Retrieval** + +- “Fetch the token price history of XYZ for the last six months.” +- “What was the average gas price on Ethereum during April?” + +**Portfolio Monitoring** + +- “List my wallet’s current token balances and their USD equivalents.” +- “Calculate profit/loss on XYZ since xyz date.” + +**Cross-Chain Comparison** + +- “Show me the 7-day trading volume of XYZ on Ethereum vs. Polygon.” +- “How many XYZ swaps occurred on Arbitrum yesterday?” + +To get started follow the [quickstart](/ai-suite/graph-assistant/quick-start/) and explore its capabilities. diff --git a/website/src/pages/es/ai-suite/graph-assistant/introduction.mdx b/website/src/pages/es/ai-suite/graph-assistant/introduction.mdx new file mode 100644 index 000000000000..65fdf0f96028 --- /dev/null +++ b/website/src/pages/es/ai-suite/graph-assistant/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +[Graph Assistant](https://thegraph.com/graph-assistant) (Beta) gives instant, code-free access to blockchain data, transforming natural language into precise, AI-powered queries without the need to code. + +## Overview + +[Graph Assistant](https://thegraph.com/graph-assistant) is an advanced, [agentic](/en/ai-suite/graph-assistant/faq/) easy-to-use chat interface for querying blockchain data using natural language. Unlike a basic chatbot, Graph Assistant can understand your intent, build complex queries, and execute them automatically. This gives you rich, AI-powered insights from onchain data without writing any code. + +- **Automatically** interprets user intent, generates precise queries, executes them via The Graph's Subgraphs and Token API, and presents structured, AI-powered answers without requiring any code. +- **Removes** the technical complexity found in traditional dashboards or chatbots. It provides composable insights directly from indexed Subgraphs and Token datasets. + +## Core Features + +| Feature | Description | +| --- | --- | +| **Friendly Interface** | Conversational access to blockchain data via natural language. You simply ask questions, the Assistant fetches the answer, and renders results. | +| **Backed by Subgraphs** | Uses subgraphs to index protocol-specific data like transactions, events, and protocol metrics. | +| **Backed by Token API** | Uses Token API for token-level information like balances, transfers, and metadata. | +| **No Setup Required** | No need to configure data sources or write queries. | +| **Automatic Query Building** | The Assistant performs complex queries such as fetching historical token volumes, protocol analytics, or cross-chain data and handles filtering, pagination, and joins across Subgraphs automatically. | + +## Help Shape What's Next + +This is in **beta**, and community input is essential. If you have ideas, questions, or run into anything unexpected, we'd love to hear from you: + +- Join the community on [Discord](https://discord.com/invite/graphprotocol): Provide feedback and stay in the loop with other builders. You'll be able to join the `#graph-assistant` channel to share your experience directly. +- Interested in going deeper? Reach out to become a dedicated beta tester so your specific use case can be better supported. diff --git a/website/src/pages/es/ai-suite/graph-assistant/quick-start.mdx b/website/src/pages/es/ai-suite/graph-assistant/quick-start.mdx new file mode 100644 index 000000000000..13f8478b8d2b --- /dev/null +++ b/website/src/pages/es/ai-suite/graph-assistant/quick-start.mdx @@ -0,0 +1,44 @@ +--- +title: Quick Start +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +This guide provides step-by-step instructions for getting started with Graph Assistant quickly. + +## Step-by Step + +### Step 1. Create an Account + +Go to: [Graph Assistant](https://thegraph.com/graph-assistant) + +- Click Sign Up (or Log In if you already have an account). +- Use your Google, GitHub, X, email or wallet credentials to log in. +- No additional setup is required. + +### Step 2. Open the Assistant Chat + +After logging in: + +- You'll see Graph Assistant's interface. +- At the bottom of the page, you will find a chat input bar. This is where you will interact with the Assistant. + +### Step 3: Ask Your First Question + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +In the input bar, type a natural-language query (everyday language). + +Example: + +```yaml +Show me the 24-hour trading volume of XYZ token on Ethereum +``` + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the AI interface. Do not share sensitive, personal, or private information. + +The Assistant will: + +- Digest your question +- Fetch onchain data using Subgraphs or the Token API +- Return a clean, formatted response with the data you need diff --git a/website/src/pages/es/ai-suite/subgraph-mcp/_meta.js b/website/src/pages/es/ai-suite/subgraph-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/es/ai-suite/subgraph-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/es/subgraphs/mcp/claude.mdx b/website/src/pages/es/ai-suite/subgraph-mcp/claude.mdx similarity index 87% rename from website/src/pages/es/subgraphs/mcp/claude.mdx rename to website/src/pages/es/ai-suite/subgraph-mcp/claude.mdx index 027b272cb942..ff3caa4e3e7f 100644 --- a/website/src/pages/es/subgraphs/mcp/claude.mdx +++ b/website/src/pages/es/ai-suite/subgraph-mcp/claude.mdx @@ -2,17 +2,7 @@ title: Claude Desktop --- -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. - -## What You Can Do - -The Subgraph MCP integration enables you to: - -- Access the GraphQL schema for any Subgraph on The Graph Network -- Execute GraphQL queries against any Subgraph deployment -- Find top Subgraph deployments for a given keyword or contract address -- Get 30-day query volume for Subgraph deployments -- Ask natural language questions about Subgraph data without writing GraphQL queries manually +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data via natural language conversations with Claude. ## Prerequisites diff --git a/website/src/pages/ar/subgraphs/mcp/cline.mdx b/website/src/pages/es/ai-suite/subgraph-mcp/cline.mdx similarity index 89% rename from website/src/pages/ar/subgraphs/mcp/cline.mdx rename to website/src/pages/es/ai-suite/subgraph-mcp/cline.mdx index 156221d9a127..eb8044bfe991 100644 --- a/website/src/pages/ar/subgraphs/mcp/cline.mdx +++ b/website/src/pages/es/ai-suite/subgraph-mcp/cline.mdx @@ -2,7 +2,7 @@ title: Cline --- -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. ## Prerequisites diff --git a/website/src/pages/es/subgraphs/mcp/cursor.mdx b/website/src/pages/es/ai-suite/subgraph-mcp/cursor.mdx similarity index 88% rename from website/src/pages/es/subgraphs/mcp/cursor.mdx rename to website/src/pages/es/ai-suite/subgraph-mcp/cursor.mdx index 298f43ece048..6291caf4b06b 100644 --- a/website/src/pages/es/subgraphs/mcp/cursor.mdx +++ b/website/src/pages/es/ai-suite/subgraph-mcp/cursor.mdx @@ -2,7 +2,7 @@ title: Cursor --- -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. ## Prerequisites diff --git a/website/src/pages/es/ai-suite/subgraph-mcp/introduction.mdx b/website/src/pages/es/ai-suite/subgraph-mcp/introduction.mdx new file mode 100644 index 000000000000..da1272cf9a36 --- /dev/null +++ b/website/src/pages/es/ai-suite/subgraph-mcp/introduction.mdx @@ -0,0 +1,22 @@ +--- +title: Subgraph MCP Introduction +sidebarTitle: 'Introduction' +--- + +Subgraph MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +It presents The Graph's Subgraph data through a set of MCP tools that any MCP-compatible client can call. With these tools, clients can search for relevant Subgraphs, inspect GraphQL schemas, and run queries against specific deployments on The Graph Network all within a single, standardized interface. + +The server itself does not hold a language model. Instead, it translates incoming MCP requests into Subgraph queries and returns the structured results, allowing the client's LLM to transform a natural-language prompt into actionable blockchain data. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Subgraph ecosystem. + +## What You Can Do + +- Access GraphQL schemas for any Subgraph on The Graph Network +- Run GraphQL queries on any Subgraph deployment +- Discover top Subgraph deployments by keyword or contract address +- Retrieve 30-day query volumes for Subgraph deployments +- Ask questions about Subgraph data without writing GraphQL manually + +The Subgraph MCP server allows smooth integration with [Claude](/ai-suite/subgraph-mcp/claude/), [Cline](/ai-suite/subgraph-mcp/cline/), or [Cursor](/ai-suite/subgraph-mcp/cursor/), making blockchain data queries with The Graph Network a conversational experience. diff --git a/website/src/pages/es/ai-suite/token-api-mcp/_meta.js b/website/src/pages/es/ai-suite/token-api-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/es/ai-suite/token-api-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/nl/token-api/mcp/claude.mdx b/website/src/pages/es/ai-suite/token-api-mcp/claude.mdx similarity index 100% rename from website/src/pages/nl/token-api/mcp/claude.mdx rename to website/src/pages/es/ai-suite/token-api-mcp/claude.mdx diff --git a/website/src/pages/nl/token-api/mcp/cline.mdx b/website/src/pages/es/ai-suite/token-api-mcp/cline.mdx similarity index 100% rename from website/src/pages/nl/token-api/mcp/cline.mdx rename to website/src/pages/es/ai-suite/token-api-mcp/cline.mdx diff --git a/website/src/pages/nl/token-api/mcp/cursor.mdx b/website/src/pages/es/ai-suite/token-api-mcp/cursor.mdx similarity index 100% rename from website/src/pages/nl/token-api/mcp/cursor.mdx rename to website/src/pages/es/ai-suite/token-api-mcp/cursor.mdx diff --git a/website/src/pages/es/ai-suite/token-api-mcp/introduction.mdx b/website/src/pages/es/ai-suite/token-api-mcp/introduction.mdx new file mode 100644 index 000000000000..b61ad0a1c485 --- /dev/null +++ b/website/src/pages/es/ai-suite/token-api-mcp/introduction.mdx @@ -0,0 +1,23 @@ +--- +title: Token API MCP Introduction +sidebarTitle: 'Introduction' +--- + +Token API MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +This MCP server makes on-chain token data, including metadata, balances, transfers, and holder statistics, accessible through a set of MCP tools. Any compatible client can use these tools to fetch and analyze token information through a standardized interface. It connects to The Graph's hosted Token API database, enabling AI assistants to query real-time blockchain data using natural language requests that get translated into optimized SQL queries. + +The server itself does not host any language model. It simply converts MCP calls into data look-ups and returns structured results, letting the client's own LLM incorporate the results. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Token API data. + +## What You Can Do + +- Retrieve token metadata including name, symbol, decimals, total supply, and contract address +- Get token balances for any wallet address holding a supported ERC-20 token +- Fetch token transfer activity including sender, receiver, amount, and timestamp +- Identify top holders and analyze token distribution +- Ask natural language questions about token data without writing smart contract calls +- Access historical transfer data to analyze token movement over time + +The Token MCP server provides [Claude](/ai-suite/token-api-mcp/claude/), [Cline](/ai-suite/token-api-mcp/cline/), and [Cursor](/ai-suite/token-api-mcp/cursor/) with direct, conversational access to onchain token data. diff --git a/website/src/pages/es/resources/_meta.js b/website/src/pages/es/resources/_meta.js index aa8e2d0ec6a8..38c56cf56c43 100644 --- a/website/src/pages/es/resources/_meta.js +++ b/website/src/pages/es/resources/_meta.js @@ -7,5 +7,4 @@ export default { roles: titles.roles ?? '', 'migration-guides': titles['migration-guides'] ?? '', 'subgraph-studio-faq': '', - 'claude-mcp': '', } diff --git a/website/src/pages/es/resources/claude-mcp.mdx b/website/src/pages/es/resources/claude-mcp.mdx deleted file mode 100644 index 44ed075cffda..000000000000 --- a/website/src/pages/es/resources/claude-mcp.mdx +++ /dev/null @@ -1,122 +0,0 @@ ---- -title: Claude MCP ---- - -This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. - -## What You Can Do - -With these integrations, you can: - -- **Token API**: Access token and wallet information across multiple blockchains -- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries - -## Prerequisites - -- [Node.js](https://nodejs.org/en/download/) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed -- API keys: - - Token API key from [The Graph Market](https://thegraph.market/) - - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -## Configuration Steps - -### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** - -Paths by operating system: - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -### 2. Add Configuration - -Replace the contents of the existing config file with: - -```json -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "ACCESS_TOKEN" - } - }, - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Keys - -Replace: - -- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) -- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -### 4. Save and Restart - -- Save the configuration file -- Restart Claude Desktop - -### 5. Add The Graph Resources in Claude - -After configuration: - -1. Start a new conversation in Claude Desktop -2. Click on the context menu (top right) -3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP - -> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. - -### 6. Run Queries - -Here are some example queries you can try after setting up the resources: - -### Subgraph Queries - -``` -What are the top pools in Uniswap? -``` - -``` -Who are the top Delegators of The Graph Protocol? -``` - -``` -Please make a bar chart for the number of active loans in Compound for the last 7 days -``` - -### Token API Queries - -``` -Show me the current price of ETH -``` - -``` -What are the top tokens by market cap on Ethereum? -``` - -``` -Analyze this wallet address: 0x... -``` - -## Troubleshooting - -If you encounter issues: - -1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal -2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file -3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs -4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop diff --git a/website/src/pages/es/subgraphs/_meta.js b/website/src/pages/es/subgraphs/_meta.js index 4365293ffc72..45841d5f3355 100644 --- a/website/src/pages/es/subgraphs/_meta.js +++ b/website/src/pages/es/subgraphs/_meta.js @@ -6,7 +6,6 @@ export default { querying: titles.querying ?? '', developing: titles.developing ?? '', billing: '', - mcp: titles.mcp ?? '', guides: titles.guides, 'best-practices': titles['best-practices'], 'fair-use-policy': '', diff --git a/website/src/pages/es/subgraphs/mcp/_meta.js b/website/src/pages/es/subgraphs/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/es/subgraphs/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/es/substreams/_meta.js b/website/src/pages/es/substreams/_meta.js index a8ee04618eae..658bb8c213c6 100644 --- a/website/src/pages/es/substreams/_meta.js +++ b/website/src/pages/es/substreams/_meta.js @@ -5,5 +5,4 @@ export default { introduction: '', developing: titles.developing ?? '', publishing: '', - sps: titles.sps ?? '', } diff --git a/website/src/pages/es/token-api/_meta-titles.json b/website/src/pages/es/token-api/_meta-titles.json index 7ed31e0af95d..3108ecd3ebfd 100644 --- a/website/src/pages/es/token-api/_meta-titles.json +++ b/website/src/pages/es/token-api/_meta-titles.json @@ -1,6 +1,7 @@ { "mcp": "MCP", "evm": "EVM Endpoints", + "svm": "SVM Endpoints", "monitoring": "Monitoring Endpoints", "faq": "FAQ" } diff --git a/website/src/pages/es/token-api/_meta.js b/website/src/pages/es/token-api/_meta.js index f67576d7f612..fb7f7334ea0c 100644 --- a/website/src/pages/es/token-api/_meta.js +++ b/website/src/pages/es/token-api/_meta.js @@ -2,8 +2,8 @@ import titles from './_meta-titles.json' export default { 'quick-start': '', - mcp: titles.mcp ?? '', evm: titles.evm ?? '', + svm: titles.svm ?? '', monitoring: titles.monitoring ?? '', faq: '', } diff --git a/website/src/pages/es/token-api/mcp/_meta.js b/website/src/pages/es/token-api/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/es/token-api/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/es/token-api/svm/_meta.js b/website/src/pages/es/token-api/svm/_meta.js new file mode 100644 index 000000000000..1a48b82fcbf1 --- /dev/null +++ b/website/src/pages/es/token-api/svm/_meta.js @@ -0,0 +1,5 @@ +export default { + 'get-balances-svm': '', + 'get-transfers-svm': '', + 'get-swaps-svm': '', +} diff --git a/website/src/pages/es/token-api/svm/get-balances-svm.mdx b/website/src/pages/es/token-api/svm/get-balances-svm.mdx new file mode 100644 index 000000000000..c2946c190bf9 --- /dev/null +++ b/website/src/pages/es/token-api/svm/get-balances-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Balances +template: + type: openApi + apiId: tokenApi + operationId: getBalancesSvm +--- + +Provides Solana tokens balances by token account address. diff --git a/website/src/pages/es/token-api/svm/get-swaps-svm.mdx b/website/src/pages/es/token-api/svm/get-swaps-svm.mdx new file mode 100644 index 000000000000..95282a38ac9f --- /dev/null +++ b/website/src/pages/es/token-api/svm/get-swaps-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsSvm +--- + +Provides Raydium swap events. diff --git a/website/src/pages/es/token-api/svm/get-transfers-svm.mdx b/website/src/pages/es/token-api/svm/get-transfers-svm.mdx new file mode 100644 index 000000000000..5335cdddf418 --- /dev/null +++ b/website/src/pages/es/token-api/svm/get-transfers-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersSvm +--- + +Provides SVM transfer events. diff --git a/website/src/pages/fr/ai-suite/_meta-titles.json b/website/src/pages/fr/ai-suite/_meta-titles.json new file mode 100644 index 000000000000..5eb482a7092b --- /dev/null +++ b/website/src/pages/fr/ai-suite/_meta-titles.json @@ -0,0 +1,6 @@ +{ + "graph-assistant": "Graph Assistant", + "ai-introduction": "The Graph's AI", + "subgraph-mcp": "Subgraph MCP", + "token-api-mcp": "Token API MCP" +} diff --git a/website/src/pages/fr/ai-suite/_meta.js b/website/src/pages/fr/ai-suite/_meta.js new file mode 100644 index 000000000000..c9e51dfd35fb --- /dev/null +++ b/website/src/pages/fr/ai-suite/_meta.js @@ -0,0 +1,8 @@ +import titles from './_meta-titles.json' + +export default { + 'ai-introduction': titles['ai-introduction'], + 'graph-assistant': titles['graph-assistant'], + 'subgraph-mcp': titles['subgraph-mcp'], + 'token-api-mcp': titles['token-api-mcp'], +} diff --git a/website/src/pages/fr/ai-suite/ai-introduction.mdx b/website/src/pages/fr/ai-suite/ai-introduction.mdx new file mode 100644 index 000000000000..d25cc9f77358 --- /dev/null +++ b/website/src/pages/fr/ai-suite/ai-introduction.mdx @@ -0,0 +1,58 @@ +--- +title: The Graph's AI +--- + +Build with speed and scale faster with The Graph's AI. + +## Using AI on The Graph + +Instead of relying on static datasets or centralized APIs, you can now access live blockchain data through our **agentic** app, [Graph Assistant](/ai-suite/graph-assistant/introduction/), and use our AI-native tooling, [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/), and [Token API MCP](/ai-suite/token-api-mcp/introduction/). + +### Why Use Onchain Data with AI? + +Using onchain data with AI unlocks powerful new ways to interact with and understand blockchain ecosystems. + +- **AI for Non-Technical End Users**: AI can turn complex onchain data into accessible insights. Assistants powered by AI enable you to explore and analyze blockchain data without coding. +- **AI for Developers**: You can use AI to interact directly with The Graph's data through your agents or build AI-powered applications on top of it. This streamlines development and opens up more intuitive, dynamic use cases. + +## AI for Non-Technical/End Users + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) is a powerful **agentic** application that empowers users to easily interact with blockchain data. Ask questions in simple, natural language and get rich, AI powered insights. Both technical developers and non-technical product teams can move faster, make smarter decisions, and gain a clearer understanding than ever before. + +### Benefits of Using Graph Assistant + +- **Natural language Input**: You don't need to write complex queries or sift through dashboards. Simply ask your question in plain English and get clear, structured results. +- **Multi-source support**: Works across multiple Subgraphs and Token API. The Assistant automatically determines which data source to use, so you don't have to switch tools or manage endpoints. +- **Schema-free access**: You don't need to understand the schema. You can refer to tokens, protocols, dates, or addresses using natural language. The Assistant takes care of the rest. + +### Conversational Querying with Graph Assistant + +**Example queries:** + +- "List the top-5 swaps by USD value in the last 24 hours." +- "Give me the daily volume on Uniswap." +- "List the 20 most recently registered .eth names." + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) will eventually be a one-stop shop for interacting with The Graph. Right now, it's an agentic AI app that uses state-of-the-art AI techniques, LLMs, and MCPs to understand and answer your questions about [Subgraphs](/subgraphs/developing/subgraphs/) and [Token API](/token-api/quick-start/) data. + +## AI for Developers + +### Enable Natural Language Access to Onchain Data + +[Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) servers connect to Claude, Cline, and Cursor. They enable models to understand, query, and interact with structured onchain data using natural language. MCPs remove the need to write low-level queries or interact with APIs directly. + +### Subgraph MCP + +The [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/) server connects models to Subgraphs on The Graph Network. It allows language models to explore Subgraph schemas, execute GraphQL queries, find relevant Subgraphs by keyword or contract, and surface usage metrics using natural language. + +### Token API MCP + +The [Token API MCP](/ai-suite/token-api-mcp/introduction/) MCP server enables models to access onchain token data. It supports querying token metadata, wallet balances, transfer history, and top token holders through simple prompts. + +#### Benefits of Using Subgraph and Token API MCPs + +- Query Subgraphs and token data using natural language +- Access GraphQL schemas and token metadata without manual queries +- Find Subgraphs by keyword or contract and check 30-day usage +- Retrieve real-time data from The Graph and onchain token sources +- Get wallet balances, transfer history, and top token holders diff --git a/website/src/pages/fr/ai-suite/graph-assistant/_meta.js b/website/src/pages/fr/ai-suite/graph-assistant/_meta.js new file mode 100644 index 000000000000..74da5e0686a7 --- /dev/null +++ b/website/src/pages/fr/ai-suite/graph-assistant/_meta.js @@ -0,0 +1,6 @@ +export default { + 'quick-start': '', + introduction: '', + 'how-to-guide': '', + faq: '', +} diff --git a/website/src/pages/fr/ai-suite/graph-assistant/faq.mdx b/website/src/pages/fr/ai-suite/graph-assistant/faq.mdx new file mode 100644 index 000000000000..8addf9935524 --- /dev/null +++ b/website/src/pages/fr/ai-suite/graph-assistant/faq.mdx @@ -0,0 +1,26 @@ +--- +title: Graph Assistant FAQ +sidebarTitle: 'FAQ' +--- + +This page summarizes some of the most common questions for developers using Graph Assistant. + +1. What is The Graph Assistant? + +The Graph Assistant is an AI-powered chat interface that lets you query blockchain data in plain English. Under the hood, it translates your questions into GraphQL calls against Subgraphs and the Token API, then returns results, no coding required. + +2. What is an agentic application? + +An agentic application combines AI-driven reasoning with external data sources or APIs to take autonomous actions on your behalf. In this case, Graph Assistant acts as an “agent” that interprets your natural-language prompts, builds and dispatches GraphQL queries, and formats the results so that you don't need to write or manage queries yourself. + +3. Which networks and data does Graph Assistant support? + +The Assistant has access to Subgraphs across multiple chains. If a Subgraph is published to The Graph Network and is being indexed, the Assistant can automatically route queries to it. The Assistant also has access to the Token API on Ethereum Mainnet, BSC, Unichain, Arbitrum-One, Optimism, and Polygon. + +4. Is there a usage limit or quota? + +Yes, 10 questions per hour. + +5. What if the Assistant can't interpret my question? + +When the Assistant fails to parse your intent (for example, ambiguous token name, missing context, or an unsupported request), it will prompt you for clarification. For instance, it might ask, “Did you mean XYZ on Ethereum or XYZ on Arbitrum?” or “Please specify a date range for this query.” If you continue to see parsing errors, check that you're using correct token symbols or specifying networks and time frames clearly. diff --git a/website/src/pages/fr/ai-suite/graph-assistant/how-to-guide.mdx b/website/src/pages/fr/ai-suite/graph-assistant/how-to-guide.mdx new file mode 100644 index 000000000000..463130894ad8 --- /dev/null +++ b/website/src/pages/fr/ai-suite/graph-assistant/how-to-guide.mdx @@ -0,0 +1,56 @@ +--- +title: How To Use The Graph Assistant +sidebarTitle: 'How-to Guide' +--- + +## Overview + +You type a natural language question into the chat interface, such as: + +```yaml +'On Uniswap, return the top-10 pools by total value locked in USD.' +``` + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the underlying agents. Do not share sensitive, personal, or private information. + +### Behind the Scenes + +The Assistant: + +1. Interprets your intent +2. Maps it to the correct Subgraphs or Token API endpoint +3. Executes optimized queries +4. Returns clean, structured results + +You don't need to write queries or understand a Subgraph's schema, you simply ask. + +### Example Use Cases + +**Protocol Analytics** + +- “Compare daily active users on Aave vs. Compound in May 2025.” +- “Show me the total value locked (TVL) for XYZDAO over the last quarter.” + +**Token Insights** + +- “What are the top 10 tokens by market cap on Ethereum right now?” +- “How many XYZ did I receive between May 1 and May 15?” + +**Historical Data Retrieval** + +- “Fetch the token price history of XYZ for the last six months.” +- “What was the average gas price on Ethereum during April?” + +**Portfolio Monitoring** + +- “List my wallet’s current token balances and their USD equivalents.” +- “Calculate profit/loss on XYZ since xyz date.” + +**Cross-Chain Comparison** + +- “Show me the 7-day trading volume of XYZ on Ethereum vs. Polygon.” +- “How many XYZ swaps occurred on Arbitrum yesterday?” + +To get started follow the [quickstart](/ai-suite/graph-assistant/quick-start/) and explore its capabilities. diff --git a/website/src/pages/fr/ai-suite/graph-assistant/introduction.mdx b/website/src/pages/fr/ai-suite/graph-assistant/introduction.mdx new file mode 100644 index 000000000000..65fdf0f96028 --- /dev/null +++ b/website/src/pages/fr/ai-suite/graph-assistant/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +[Graph Assistant](https://thegraph.com/graph-assistant) (Beta) gives instant, code-free access to blockchain data, transforming natural language into precise, AI-powered queries without the need to code. + +## Overview + +[Graph Assistant](https://thegraph.com/graph-assistant) is an advanced, [agentic](/en/ai-suite/graph-assistant/faq/) easy-to-use chat interface for querying blockchain data using natural language. Unlike a basic chatbot, Graph Assistant can understand your intent, build complex queries, and execute them automatically. This gives you rich, AI-powered insights from onchain data without writing any code. + +- **Automatically** interprets user intent, generates precise queries, executes them via The Graph's Subgraphs and Token API, and presents structured, AI-powered answers without requiring any code. +- **Removes** the technical complexity found in traditional dashboards or chatbots. It provides composable insights directly from indexed Subgraphs and Token datasets. + +## Core Features + +| Feature | Description | +| --- | --- | +| **Friendly Interface** | Conversational access to blockchain data via natural language. You simply ask questions, the Assistant fetches the answer, and renders results. | +| **Backed by Subgraphs** | Uses subgraphs to index protocol-specific data like transactions, events, and protocol metrics. | +| **Backed by Token API** | Uses Token API for token-level information like balances, transfers, and metadata. | +| **No Setup Required** | No need to configure data sources or write queries. | +| **Automatic Query Building** | The Assistant performs complex queries such as fetching historical token volumes, protocol analytics, or cross-chain data and handles filtering, pagination, and joins across Subgraphs automatically. | + +## Help Shape What's Next + +This is in **beta**, and community input is essential. If you have ideas, questions, or run into anything unexpected, we'd love to hear from you: + +- Join the community on [Discord](https://discord.com/invite/graphprotocol): Provide feedback and stay in the loop with other builders. You'll be able to join the `#graph-assistant` channel to share your experience directly. +- Interested in going deeper? Reach out to become a dedicated beta tester so your specific use case can be better supported. diff --git a/website/src/pages/fr/ai-suite/graph-assistant/quick-start.mdx b/website/src/pages/fr/ai-suite/graph-assistant/quick-start.mdx new file mode 100644 index 000000000000..13f8478b8d2b --- /dev/null +++ b/website/src/pages/fr/ai-suite/graph-assistant/quick-start.mdx @@ -0,0 +1,44 @@ +--- +title: Quick Start +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +This guide provides step-by-step instructions for getting started with Graph Assistant quickly. + +## Step-by Step + +### Step 1. Create an Account + +Go to: [Graph Assistant](https://thegraph.com/graph-assistant) + +- Click Sign Up (or Log In if you already have an account). +- Use your Google, GitHub, X, email or wallet credentials to log in. +- No additional setup is required. + +### Step 2. Open the Assistant Chat + +After logging in: + +- You'll see Graph Assistant's interface. +- At the bottom of the page, you will find a chat input bar. This is where you will interact with the Assistant. + +### Step 3: Ask Your First Question + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +In the input bar, type a natural-language query (everyday language). + +Example: + +```yaml +Show me the 24-hour trading volume of XYZ token on Ethereum +``` + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the AI interface. Do not share sensitive, personal, or private information. + +The Assistant will: + +- Digest your question +- Fetch onchain data using Subgraphs or the Token API +- Return a clean, formatted response with the data you need diff --git a/website/src/pages/fr/ai-suite/subgraph-mcp/_meta.js b/website/src/pages/fr/ai-suite/subgraph-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/fr/ai-suite/subgraph-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/fr/ai-suite/subgraph-mcp/claude.mdx b/website/src/pages/fr/ai-suite/subgraph-mcp/claude.mdx new file mode 100644 index 000000000000..ff3caa4e3e7f --- /dev/null +++ b/website/src/pages/fr/ai-suite/subgraph-mcp/claude.mdx @@ -0,0 +1,169 @@ +--- +title: Claude Desktop +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data via natural language conversations with Claude. + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` diff --git a/website/src/pages/fr/ai-suite/subgraph-mcp/cline.mdx b/website/src/pages/fr/ai-suite/subgraph-mcp/cline.mdx new file mode 100644 index 000000000000..eb8044bfe991 --- /dev/null +++ b/website/src/pages/fr/ai-suite/subgraph-mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "Subgraph Server Instructions" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/fr/ai-suite/subgraph-mcp/cursor.mdx b/website/src/pages/fr/ai-suite/subgraph-mcp/cursor.mdx new file mode 100644 index 000000000000..6291caf4b06b --- /dev/null +++ b/website/src/pages/fr/ai-suite/subgraph-mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/fr/ai-suite/subgraph-mcp/introduction.mdx b/website/src/pages/fr/ai-suite/subgraph-mcp/introduction.mdx new file mode 100644 index 000000000000..da1272cf9a36 --- /dev/null +++ b/website/src/pages/fr/ai-suite/subgraph-mcp/introduction.mdx @@ -0,0 +1,22 @@ +--- +title: Subgraph MCP Introduction +sidebarTitle: 'Introduction' +--- + +Subgraph MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +It presents The Graph's Subgraph data through a set of MCP tools that any MCP-compatible client can call. With these tools, clients can search for relevant Subgraphs, inspect GraphQL schemas, and run queries against specific deployments on The Graph Network all within a single, standardized interface. + +The server itself does not hold a language model. Instead, it translates incoming MCP requests into Subgraph queries and returns the structured results, allowing the client's LLM to transform a natural-language prompt into actionable blockchain data. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Subgraph ecosystem. + +## What You Can Do + +- Access GraphQL schemas for any Subgraph on The Graph Network +- Run GraphQL queries on any Subgraph deployment +- Discover top Subgraph deployments by keyword or contract address +- Retrieve 30-day query volumes for Subgraph deployments +- Ask questions about Subgraph data without writing GraphQL manually + +The Subgraph MCP server allows smooth integration with [Claude](/ai-suite/subgraph-mcp/claude/), [Cline](/ai-suite/subgraph-mcp/cline/), or [Cursor](/ai-suite/subgraph-mcp/cursor/), making blockchain data queries with The Graph Network a conversational experience. diff --git a/website/src/pages/fr/ai-suite/token-api-mcp/_meta.js b/website/src/pages/fr/ai-suite/token-api-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/fr/ai-suite/token-api-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/pl/token-api/mcp/claude.mdx b/website/src/pages/fr/ai-suite/token-api-mcp/claude.mdx similarity index 100% rename from website/src/pages/pl/token-api/mcp/claude.mdx rename to website/src/pages/fr/ai-suite/token-api-mcp/claude.mdx diff --git a/website/src/pages/pl/token-api/mcp/cline.mdx b/website/src/pages/fr/ai-suite/token-api-mcp/cline.mdx similarity index 100% rename from website/src/pages/pl/token-api/mcp/cline.mdx rename to website/src/pages/fr/ai-suite/token-api-mcp/cline.mdx diff --git a/website/src/pages/pl/token-api/mcp/cursor.mdx b/website/src/pages/fr/ai-suite/token-api-mcp/cursor.mdx similarity index 100% rename from website/src/pages/pl/token-api/mcp/cursor.mdx rename to website/src/pages/fr/ai-suite/token-api-mcp/cursor.mdx diff --git a/website/src/pages/fr/ai-suite/token-api-mcp/introduction.mdx b/website/src/pages/fr/ai-suite/token-api-mcp/introduction.mdx new file mode 100644 index 000000000000..b61ad0a1c485 --- /dev/null +++ b/website/src/pages/fr/ai-suite/token-api-mcp/introduction.mdx @@ -0,0 +1,23 @@ +--- +title: Token API MCP Introduction +sidebarTitle: 'Introduction' +--- + +Token API MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +This MCP server makes on-chain token data, including metadata, balances, transfers, and holder statistics, accessible through a set of MCP tools. Any compatible client can use these tools to fetch and analyze token information through a standardized interface. It connects to The Graph's hosted Token API database, enabling AI assistants to query real-time blockchain data using natural language requests that get translated into optimized SQL queries. + +The server itself does not host any language model. It simply converts MCP calls into data look-ups and returns structured results, letting the client's own LLM incorporate the results. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Token API data. + +## What You Can Do + +- Retrieve token metadata including name, symbol, decimals, total supply, and contract address +- Get token balances for any wallet address holding a supported ERC-20 token +- Fetch token transfer activity including sender, receiver, amount, and timestamp +- Identify top holders and analyze token distribution +- Ask natural language questions about token data without writing smart contract calls +- Access historical transfer data to analyze token movement over time + +The Token MCP server provides [Claude](/ai-suite/token-api-mcp/claude/), [Cline](/ai-suite/token-api-mcp/cline/), and [Cursor](/ai-suite/token-api-mcp/cursor/) with direct, conversational access to onchain token data. diff --git a/website/src/pages/fr/resources/_meta.js b/website/src/pages/fr/resources/_meta.js index aa8e2d0ec6a8..38c56cf56c43 100644 --- a/website/src/pages/fr/resources/_meta.js +++ b/website/src/pages/fr/resources/_meta.js @@ -7,5 +7,4 @@ export default { roles: titles.roles ?? '', 'migration-guides': titles['migration-guides'] ?? '', 'subgraph-studio-faq': '', - 'claude-mcp': '', } diff --git a/website/src/pages/fr/resources/claude-mcp.mdx b/website/src/pages/fr/resources/claude-mcp.mdx deleted file mode 100644 index 44ed075cffda..000000000000 --- a/website/src/pages/fr/resources/claude-mcp.mdx +++ /dev/null @@ -1,122 +0,0 @@ ---- -title: Claude MCP ---- - -This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. - -## What You Can Do - -With these integrations, you can: - -- **Token API**: Access token and wallet information across multiple blockchains -- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries - -## Prerequisites - -- [Node.js](https://nodejs.org/en/download/) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed -- API keys: - - Token API key from [The Graph Market](https://thegraph.market/) - - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -## Configuration Steps - -### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** - -Paths by operating system: - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -### 2. Add Configuration - -Replace the contents of the existing config file with: - -```json -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "ACCESS_TOKEN" - } - }, - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Keys - -Replace: - -- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) -- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -### 4. Save and Restart - -- Save the configuration file -- Restart Claude Desktop - -### 5. Add The Graph Resources in Claude - -After configuration: - -1. Start a new conversation in Claude Desktop -2. Click on the context menu (top right) -3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP - -> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. - -### 6. Run Queries - -Here are some example queries you can try after setting up the resources: - -### Subgraph Queries - -``` -What are the top pools in Uniswap? -``` - -``` -Who are the top Delegators of The Graph Protocol? -``` - -``` -Please make a bar chart for the number of active loans in Compound for the last 7 days -``` - -### Token API Queries - -``` -Show me the current price of ETH -``` - -``` -What are the top tokens by market cap on Ethereum? -``` - -``` -Analyze this wallet address: 0x... -``` - -## Troubleshooting - -If you encounter issues: - -1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal -2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file -3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs -4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop diff --git a/website/src/pages/fr/subgraphs/_meta.js b/website/src/pages/fr/subgraphs/_meta.js index 4365293ffc72..45841d5f3355 100644 --- a/website/src/pages/fr/subgraphs/_meta.js +++ b/website/src/pages/fr/subgraphs/_meta.js @@ -6,7 +6,6 @@ export default { querying: titles.querying ?? '', developing: titles.developing ?? '', billing: '', - mcp: titles.mcp ?? '', guides: titles.guides, 'best-practices': titles['best-practices'], 'fair-use-policy': '', diff --git a/website/src/pages/fr/subgraphs/mcp/_meta.js b/website/src/pages/fr/subgraphs/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/fr/subgraphs/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/fr/subgraphs/mcp/claude.mdx b/website/src/pages/fr/subgraphs/mcp/claude.mdx deleted file mode 100644 index 027b272cb942..000000000000 --- a/website/src/pages/fr/subgraphs/mcp/claude.mdx +++ /dev/null @@ -1,179 +0,0 @@ ---- -title: Claude Desktop ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. - -## What You Can Do - -The Subgraph MCP integration enables you to: - -- Access the GraphQL schema for any Subgraph on The Graph Network -- Execute GraphQL queries against any Subgraph deployment -- Find top Subgraph deployments for a given keyword or contract address -- Get 30-day query volume for Subgraph deployments -- Ask natural language questions about Subgraph data without writing GraphQL queries manually - -## Prerequisites - -- [Node.js](https://nodejs.org/en) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) - -## Installation Options - -### Option 1: Using npx (Recommended) - -#### Configuration Steps using npx - -#### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Settings** > **Developer** > **Edit Config** - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -#### 2. Add Configuration - -Paste the following settings into your config file: - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -#### 3. Add Your Gateway API Key - -Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). - -#### 4. Save and Restart - -Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. - -### Option 2: Building from Source - -#### Requirements - -- Rust (latest stable version recommended: 1.75+) - ```bash - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - ``` - Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). - -#### Installation Steps - -1. **Clone and Build the Repository** - - ```bash - git clone git@github.com:graphops/subgraph-mcp.git - cd subgraph-mcp - cargo build --release - ``` - -2. **Find the Command Path** - - After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - - Run `pwd` to get the full path - - Combine the output with `/target/release/subgraph-mcp` - -3. **Configure Claude Desktop** - - Open your `claude_desktop_config.json` file as described above and add: - - ```json - { - "mcpServers": { - "subgraph": { - "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", - "env": { - "GATEWAY_API_KEY": "your-api-key-here" - } - } - } - } - ``` - - Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. - -## Using The Graph Resource in Claude - -After configuring Claude Desktop: - -1. Restart Claude Desktop -2. Start a new conversation -3. Click on the context menu (top right) -4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context - -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. - -## Troubleshooting - -To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal -- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments -- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees - -## Key Identifier Types - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -``` -Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one -``` diff --git a/website/src/pages/fr/subgraphs/mcp/cline.mdx b/website/src/pages/fr/subgraphs/mcp/cline.mdx deleted file mode 100644 index 156221d9a127..000000000000 --- a/website/src/pages/fr/subgraphs/mcp/cline.mdx +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: Cline ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. - -## Prerequisites - -- [Cline](https://cline.bot/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `cline_mcp_settings.json` file. - -> **MCP Servers** > **Installed** > **Configure MCP Servers** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -## Using The Graph Resource in Cline - -After configuring Cline: - -1. Restart Cline -2. Start a new conversation -3. Enable the Subgraph MCP from the context menu -4. Add "Subgraph Server Instructions" as a resource to your chat context - -## Available Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/fr/subgraphs/mcp/cursor.mdx b/website/src/pages/fr/subgraphs/mcp/cursor.mdx deleted file mode 100644 index 298f43ece048..000000000000 --- a/website/src/pages/fr/subgraphs/mcp/cursor.mdx +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Cursor ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. - -## Prerequisites - -- [Cursor](https://www.cursor.com/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `~/.cursor/mcp.json` file. - -> **Cursor Settings** > **MCP** > **Add new global MCP Server** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -### 4. Restart Cursor - -Restart Cursor, and start a new chat. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/fr/substreams/_meta.js b/website/src/pages/fr/substreams/_meta.js index a8ee04618eae..658bb8c213c6 100644 --- a/website/src/pages/fr/substreams/_meta.js +++ b/website/src/pages/fr/substreams/_meta.js @@ -5,5 +5,4 @@ export default { introduction: '', developing: titles.developing ?? '', publishing: '', - sps: titles.sps ?? '', } diff --git a/website/src/pages/fr/token-api/_meta-titles.json b/website/src/pages/fr/token-api/_meta-titles.json index 7ed31e0af95d..3108ecd3ebfd 100644 --- a/website/src/pages/fr/token-api/_meta-titles.json +++ b/website/src/pages/fr/token-api/_meta-titles.json @@ -1,6 +1,7 @@ { "mcp": "MCP", "evm": "EVM Endpoints", + "svm": "SVM Endpoints", "monitoring": "Monitoring Endpoints", "faq": "FAQ" } diff --git a/website/src/pages/fr/token-api/_meta.js b/website/src/pages/fr/token-api/_meta.js index f67576d7f612..fb7f7334ea0c 100644 --- a/website/src/pages/fr/token-api/_meta.js +++ b/website/src/pages/fr/token-api/_meta.js @@ -2,8 +2,8 @@ import titles from './_meta-titles.json' export default { 'quick-start': '', - mcp: titles.mcp ?? '', evm: titles.evm ?? '', + svm: titles.svm ?? '', monitoring: titles.monitoring ?? '', faq: '', } diff --git a/website/src/pages/fr/token-api/mcp/_meta.js b/website/src/pages/fr/token-api/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/fr/token-api/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/fr/token-api/mcp/claude.mdx b/website/src/pages/fr/token-api/mcp/claude.mdx deleted file mode 100644 index 2ee7b0330a14..000000000000 --- a/website/src/pages/fr/token-api/mcp/claude.mdx +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: Using Claude Desktop to Access the Token API via MCP -sidebarTitle: Claude Desktop ---- - -## Prérequis - -- [Claude Desktop](https://claude.ai/download) installed. -- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. -- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. - -![Screenshot of Claude Desktop's settings panel showing the MCP server configuration option.](/img/claude-preview-token-api.png) - -## La Configuration - -Create or edit your `claude_desktop_config.json` file. - -> **Settings** > **Developer** > **Edit Config** - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -```json label="claude_desktop_config.json" -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -## Troubleshooting - -To enable logs for the MCP, use the `--verbose true` option. - -### ENOENT - -![Error dialog in Claude Desktop showing 'ENOENT' system error, indicating the npx/bunx command wasn't found in the system path.](/img/claude-ENOENT.png) - -Try to use the full path of the command instead: - -- Run `which npx` or `which bunx` to get the path of the command. -- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). - -### Server disconnected - -![Connection error notification in Claude Desktop displaying 'Server disconnected' message.](/img/claude-server-disconnect.png) - -Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. - -> You can always have a look at the full logs under `Claude/logs/mcp.log` and `Claude/logs/mcp-server-pinax.log` for more details. diff --git a/website/src/pages/fr/token-api/mcp/cline.mdx b/website/src/pages/fr/token-api/mcp/cline.mdx deleted file mode 100644 index 8ded5ee70feb..000000000000 --- a/website/src/pages/fr/token-api/mcp/cline.mdx +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Using Cline to Access the Token API via MCP -sidebarTitle: Cline ---- - -## Prérequis - -- [Cline](https://cline.bot/) installed. -- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. -- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. - -![Screenshot of Cline's MCP server configuration interface displaying the JSON settings file with mcp-pinax server details visible.](/img/cline-preview-token-api.png) - -## La Configuration - -Create or edit your `cline_mcp_settings.json` file. - -> **MCP Servers** > **Installed** > **Configure MCP Servers** - -```json label="cline_mcp_settings.json" -{ - "mcpServers": { - "mcp-pinax": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -## Troubleshooting - -To enable logs for the MCP, use the `--verbose true` option. - -### ENOENT - -![Cline error dialog showing 'ENOENT' system alert.](/img/cline-error.png) - -Try to use the full path of the command instead: - -- Run `which npx` or `which bunx` to get the path of the command. -- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). - -### Server disconnected - -![Cline connection error notification displaying server disconnection warning.](/img/cline-missing-variables.png) - -Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/fr/token-api/mcp/cursor.mdx b/website/src/pages/fr/token-api/mcp/cursor.mdx deleted file mode 100644 index 76377688bb1a..000000000000 --- a/website/src/pages/fr/token-api/mcp/cursor.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Using Cursor to Access the Token API via MCP -sidebarTitle: Cursor ---- - -## Prérequis - -- [Cursor](https://www.cursor.com/) installed. -- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. -- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. - -![Screenshot of Cursor's MCP configuration panel.](/img/cursor-preview-token-api.png) - -## La Configuration - -Create or edit your `~/.cursor/mcp.json` file. - -> **Cursor Settings** > **MCP** > **Add new global MCP Server** - -```json label="mcp.json" -{ - "mcpServers": { - "mcp-pinax": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -## Troubleshooting - -![Cursor IDE error notification that reads, "Failed to create client"](/img/cursor-error.png) - -To enable logs for the MCP, use the `--verbose true` option. - -### ENOENT - -Try to use the full path of the command instead: - -- Run `which npx` or `which bunx` to get the path of the command. -- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). - -### Server disconnected - -Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/fr/token-api/svm/_meta.js b/website/src/pages/fr/token-api/svm/_meta.js new file mode 100644 index 000000000000..1a48b82fcbf1 --- /dev/null +++ b/website/src/pages/fr/token-api/svm/_meta.js @@ -0,0 +1,5 @@ +export default { + 'get-balances-svm': '', + 'get-transfers-svm': '', + 'get-swaps-svm': '', +} diff --git a/website/src/pages/fr/token-api/svm/get-balances-svm.mdx b/website/src/pages/fr/token-api/svm/get-balances-svm.mdx new file mode 100644 index 000000000000..c2946c190bf9 --- /dev/null +++ b/website/src/pages/fr/token-api/svm/get-balances-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Balances +template: + type: openApi + apiId: tokenApi + operationId: getBalancesSvm +--- + +Provides Solana tokens balances by token account address. diff --git a/website/src/pages/fr/token-api/svm/get-swaps-svm.mdx b/website/src/pages/fr/token-api/svm/get-swaps-svm.mdx new file mode 100644 index 000000000000..95282a38ac9f --- /dev/null +++ b/website/src/pages/fr/token-api/svm/get-swaps-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsSvm +--- + +Provides Raydium swap events. diff --git a/website/src/pages/fr/token-api/svm/get-transfers-svm.mdx b/website/src/pages/fr/token-api/svm/get-transfers-svm.mdx new file mode 100644 index 000000000000..5335cdddf418 --- /dev/null +++ b/website/src/pages/fr/token-api/svm/get-transfers-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersSvm +--- + +Provides SVM transfer events. diff --git a/website/src/pages/hi/ai-suite/_meta-titles.json b/website/src/pages/hi/ai-suite/_meta-titles.json new file mode 100644 index 000000000000..5eb482a7092b --- /dev/null +++ b/website/src/pages/hi/ai-suite/_meta-titles.json @@ -0,0 +1,6 @@ +{ + "graph-assistant": "Graph Assistant", + "ai-introduction": "The Graph's AI", + "subgraph-mcp": "Subgraph MCP", + "token-api-mcp": "Token API MCP" +} diff --git a/website/src/pages/hi/ai-suite/_meta.js b/website/src/pages/hi/ai-suite/_meta.js new file mode 100644 index 000000000000..c9e51dfd35fb --- /dev/null +++ b/website/src/pages/hi/ai-suite/_meta.js @@ -0,0 +1,8 @@ +import titles from './_meta-titles.json' + +export default { + 'ai-introduction': titles['ai-introduction'], + 'graph-assistant': titles['graph-assistant'], + 'subgraph-mcp': titles['subgraph-mcp'], + 'token-api-mcp': titles['token-api-mcp'], +} diff --git a/website/src/pages/hi/ai-suite/ai-introduction.mdx b/website/src/pages/hi/ai-suite/ai-introduction.mdx new file mode 100644 index 000000000000..d25cc9f77358 --- /dev/null +++ b/website/src/pages/hi/ai-suite/ai-introduction.mdx @@ -0,0 +1,58 @@ +--- +title: The Graph's AI +--- + +Build with speed and scale faster with The Graph's AI. + +## Using AI on The Graph + +Instead of relying on static datasets or centralized APIs, you can now access live blockchain data through our **agentic** app, [Graph Assistant](/ai-suite/graph-assistant/introduction/), and use our AI-native tooling, [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/), and [Token API MCP](/ai-suite/token-api-mcp/introduction/). + +### Why Use Onchain Data with AI? + +Using onchain data with AI unlocks powerful new ways to interact with and understand blockchain ecosystems. + +- **AI for Non-Technical End Users**: AI can turn complex onchain data into accessible insights. Assistants powered by AI enable you to explore and analyze blockchain data without coding. +- **AI for Developers**: You can use AI to interact directly with The Graph's data through your agents or build AI-powered applications on top of it. This streamlines development and opens up more intuitive, dynamic use cases. + +## AI for Non-Technical/End Users + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) is a powerful **agentic** application that empowers users to easily interact with blockchain data. Ask questions in simple, natural language and get rich, AI powered insights. Both technical developers and non-technical product teams can move faster, make smarter decisions, and gain a clearer understanding than ever before. + +### Benefits of Using Graph Assistant + +- **Natural language Input**: You don't need to write complex queries or sift through dashboards. Simply ask your question in plain English and get clear, structured results. +- **Multi-source support**: Works across multiple Subgraphs and Token API. The Assistant automatically determines which data source to use, so you don't have to switch tools or manage endpoints. +- **Schema-free access**: You don't need to understand the schema. You can refer to tokens, protocols, dates, or addresses using natural language. The Assistant takes care of the rest. + +### Conversational Querying with Graph Assistant + +**Example queries:** + +- "List the top-5 swaps by USD value in the last 24 hours." +- "Give me the daily volume on Uniswap." +- "List the 20 most recently registered .eth names." + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) will eventually be a one-stop shop for interacting with The Graph. Right now, it's an agentic AI app that uses state-of-the-art AI techniques, LLMs, and MCPs to understand and answer your questions about [Subgraphs](/subgraphs/developing/subgraphs/) and [Token API](/token-api/quick-start/) data. + +## AI for Developers + +### Enable Natural Language Access to Onchain Data + +[Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) servers connect to Claude, Cline, and Cursor. They enable models to understand, query, and interact with structured onchain data using natural language. MCPs remove the need to write low-level queries or interact with APIs directly. + +### Subgraph MCP + +The [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/) server connects models to Subgraphs on The Graph Network. It allows language models to explore Subgraph schemas, execute GraphQL queries, find relevant Subgraphs by keyword or contract, and surface usage metrics using natural language. + +### Token API MCP + +The [Token API MCP](/ai-suite/token-api-mcp/introduction/) MCP server enables models to access onchain token data. It supports querying token metadata, wallet balances, transfer history, and top token holders through simple prompts. + +#### Benefits of Using Subgraph and Token API MCPs + +- Query Subgraphs and token data using natural language +- Access GraphQL schemas and token metadata without manual queries +- Find Subgraphs by keyword or contract and check 30-day usage +- Retrieve real-time data from The Graph and onchain token sources +- Get wallet balances, transfer history, and top token holders diff --git a/website/src/pages/hi/ai-suite/graph-assistant/_meta.js b/website/src/pages/hi/ai-suite/graph-assistant/_meta.js new file mode 100644 index 000000000000..74da5e0686a7 --- /dev/null +++ b/website/src/pages/hi/ai-suite/graph-assistant/_meta.js @@ -0,0 +1,6 @@ +export default { + 'quick-start': '', + introduction: '', + 'how-to-guide': '', + faq: '', +} diff --git a/website/src/pages/hi/ai-suite/graph-assistant/faq.mdx b/website/src/pages/hi/ai-suite/graph-assistant/faq.mdx new file mode 100644 index 000000000000..8addf9935524 --- /dev/null +++ b/website/src/pages/hi/ai-suite/graph-assistant/faq.mdx @@ -0,0 +1,26 @@ +--- +title: Graph Assistant FAQ +sidebarTitle: 'FAQ' +--- + +This page summarizes some of the most common questions for developers using Graph Assistant. + +1. What is The Graph Assistant? + +The Graph Assistant is an AI-powered chat interface that lets you query blockchain data in plain English. Under the hood, it translates your questions into GraphQL calls against Subgraphs and the Token API, then returns results, no coding required. + +2. What is an agentic application? + +An agentic application combines AI-driven reasoning with external data sources or APIs to take autonomous actions on your behalf. In this case, Graph Assistant acts as an “agent” that interprets your natural-language prompts, builds and dispatches GraphQL queries, and formats the results so that you don't need to write or manage queries yourself. + +3. Which networks and data does Graph Assistant support? + +The Assistant has access to Subgraphs across multiple chains. If a Subgraph is published to The Graph Network and is being indexed, the Assistant can automatically route queries to it. The Assistant also has access to the Token API on Ethereum Mainnet, BSC, Unichain, Arbitrum-One, Optimism, and Polygon. + +4. Is there a usage limit or quota? + +Yes, 10 questions per hour. + +5. What if the Assistant can't interpret my question? + +When the Assistant fails to parse your intent (for example, ambiguous token name, missing context, or an unsupported request), it will prompt you for clarification. For instance, it might ask, “Did you mean XYZ on Ethereum or XYZ on Arbitrum?” or “Please specify a date range for this query.” If you continue to see parsing errors, check that you're using correct token symbols or specifying networks and time frames clearly. diff --git a/website/src/pages/hi/ai-suite/graph-assistant/how-to-guide.mdx b/website/src/pages/hi/ai-suite/graph-assistant/how-to-guide.mdx new file mode 100644 index 000000000000..463130894ad8 --- /dev/null +++ b/website/src/pages/hi/ai-suite/graph-assistant/how-to-guide.mdx @@ -0,0 +1,56 @@ +--- +title: How To Use The Graph Assistant +sidebarTitle: 'How-to Guide' +--- + +## Overview + +You type a natural language question into the chat interface, such as: + +```yaml +'On Uniswap, return the top-10 pools by total value locked in USD.' +``` + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the underlying agents. Do not share sensitive, personal, or private information. + +### Behind the Scenes + +The Assistant: + +1. Interprets your intent +2. Maps it to the correct Subgraphs or Token API endpoint +3. Executes optimized queries +4. Returns clean, structured results + +You don't need to write queries or understand a Subgraph's schema, you simply ask. + +### Example Use Cases + +**Protocol Analytics** + +- “Compare daily active users on Aave vs. Compound in May 2025.” +- “Show me the total value locked (TVL) for XYZDAO over the last quarter.” + +**Token Insights** + +- “What are the top 10 tokens by market cap on Ethereum right now?” +- “How many XYZ did I receive between May 1 and May 15?” + +**Historical Data Retrieval** + +- “Fetch the token price history of XYZ for the last six months.” +- “What was the average gas price on Ethereum during April?” + +**Portfolio Monitoring** + +- “List my wallet’s current token balances and their USD equivalents.” +- “Calculate profit/loss on XYZ since xyz date.” + +**Cross-Chain Comparison** + +- “Show me the 7-day trading volume of XYZ on Ethereum vs. Polygon.” +- “How many XYZ swaps occurred on Arbitrum yesterday?” + +To get started follow the [quickstart](/ai-suite/graph-assistant/quick-start/) and explore its capabilities. diff --git a/website/src/pages/hi/ai-suite/graph-assistant/introduction.mdx b/website/src/pages/hi/ai-suite/graph-assistant/introduction.mdx new file mode 100644 index 000000000000..65fdf0f96028 --- /dev/null +++ b/website/src/pages/hi/ai-suite/graph-assistant/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +[Graph Assistant](https://thegraph.com/graph-assistant) (Beta) gives instant, code-free access to blockchain data, transforming natural language into precise, AI-powered queries without the need to code. + +## Overview + +[Graph Assistant](https://thegraph.com/graph-assistant) is an advanced, [agentic](/en/ai-suite/graph-assistant/faq/) easy-to-use chat interface for querying blockchain data using natural language. Unlike a basic chatbot, Graph Assistant can understand your intent, build complex queries, and execute them automatically. This gives you rich, AI-powered insights from onchain data without writing any code. + +- **Automatically** interprets user intent, generates precise queries, executes them via The Graph's Subgraphs and Token API, and presents structured, AI-powered answers without requiring any code. +- **Removes** the technical complexity found in traditional dashboards or chatbots. It provides composable insights directly from indexed Subgraphs and Token datasets. + +## Core Features + +| Feature | Description | +| --- | --- | +| **Friendly Interface** | Conversational access to blockchain data via natural language. You simply ask questions, the Assistant fetches the answer, and renders results. | +| **Backed by Subgraphs** | Uses subgraphs to index protocol-specific data like transactions, events, and protocol metrics. | +| **Backed by Token API** | Uses Token API for token-level information like balances, transfers, and metadata. | +| **No Setup Required** | No need to configure data sources or write queries. | +| **Automatic Query Building** | The Assistant performs complex queries such as fetching historical token volumes, protocol analytics, or cross-chain data and handles filtering, pagination, and joins across Subgraphs automatically. | + +## Help Shape What's Next + +This is in **beta**, and community input is essential. If you have ideas, questions, or run into anything unexpected, we'd love to hear from you: + +- Join the community on [Discord](https://discord.com/invite/graphprotocol): Provide feedback and stay in the loop with other builders. You'll be able to join the `#graph-assistant` channel to share your experience directly. +- Interested in going deeper? Reach out to become a dedicated beta tester so your specific use case can be better supported. diff --git a/website/src/pages/hi/ai-suite/graph-assistant/quick-start.mdx b/website/src/pages/hi/ai-suite/graph-assistant/quick-start.mdx new file mode 100644 index 000000000000..13f8478b8d2b --- /dev/null +++ b/website/src/pages/hi/ai-suite/graph-assistant/quick-start.mdx @@ -0,0 +1,44 @@ +--- +title: Quick Start +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +This guide provides step-by-step instructions for getting started with Graph Assistant quickly. + +## Step-by Step + +### Step 1. Create an Account + +Go to: [Graph Assistant](https://thegraph.com/graph-assistant) + +- Click Sign Up (or Log In if you already have an account). +- Use your Google, GitHub, X, email or wallet credentials to log in. +- No additional setup is required. + +### Step 2. Open the Assistant Chat + +After logging in: + +- You'll see Graph Assistant's interface. +- At the bottom of the page, you will find a chat input bar. This is where you will interact with the Assistant. + +### Step 3: Ask Your First Question + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +In the input bar, type a natural-language query (everyday language). + +Example: + +```yaml +Show me the 24-hour trading volume of XYZ token on Ethereum +``` + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the AI interface. Do not share sensitive, personal, or private information. + +The Assistant will: + +- Digest your question +- Fetch onchain data using Subgraphs or the Token API +- Return a clean, formatted response with the data you need diff --git a/website/src/pages/hi/ai-suite/subgraph-mcp/_meta.js b/website/src/pages/hi/ai-suite/subgraph-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/hi/ai-suite/subgraph-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/hi/ai-suite/subgraph-mcp/claude.mdx b/website/src/pages/hi/ai-suite/subgraph-mcp/claude.mdx new file mode 100644 index 000000000000..ff3caa4e3e7f --- /dev/null +++ b/website/src/pages/hi/ai-suite/subgraph-mcp/claude.mdx @@ -0,0 +1,169 @@ +--- +title: Claude Desktop +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data via natural language conversations with Claude. + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` diff --git a/website/src/pages/hi/ai-suite/subgraph-mcp/cline.mdx b/website/src/pages/hi/ai-suite/subgraph-mcp/cline.mdx new file mode 100644 index 000000000000..eb8044bfe991 --- /dev/null +++ b/website/src/pages/hi/ai-suite/subgraph-mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "Subgraph Server Instructions" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/hi/ai-suite/subgraph-mcp/cursor.mdx b/website/src/pages/hi/ai-suite/subgraph-mcp/cursor.mdx new file mode 100644 index 000000000000..6291caf4b06b --- /dev/null +++ b/website/src/pages/hi/ai-suite/subgraph-mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/hi/ai-suite/subgraph-mcp/introduction.mdx b/website/src/pages/hi/ai-suite/subgraph-mcp/introduction.mdx new file mode 100644 index 000000000000..da1272cf9a36 --- /dev/null +++ b/website/src/pages/hi/ai-suite/subgraph-mcp/introduction.mdx @@ -0,0 +1,22 @@ +--- +title: Subgraph MCP Introduction +sidebarTitle: 'Introduction' +--- + +Subgraph MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +It presents The Graph's Subgraph data through a set of MCP tools that any MCP-compatible client can call. With these tools, clients can search for relevant Subgraphs, inspect GraphQL schemas, and run queries against specific deployments on The Graph Network all within a single, standardized interface. + +The server itself does not hold a language model. Instead, it translates incoming MCP requests into Subgraph queries and returns the structured results, allowing the client's LLM to transform a natural-language prompt into actionable blockchain data. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Subgraph ecosystem. + +## What You Can Do + +- Access GraphQL schemas for any Subgraph on The Graph Network +- Run GraphQL queries on any Subgraph deployment +- Discover top Subgraph deployments by keyword or contract address +- Retrieve 30-day query volumes for Subgraph deployments +- Ask questions about Subgraph data without writing GraphQL manually + +The Subgraph MCP server allows smooth integration with [Claude](/ai-suite/subgraph-mcp/claude/), [Cline](/ai-suite/subgraph-mcp/cline/), or [Cursor](/ai-suite/subgraph-mcp/cursor/), making blockchain data queries with The Graph Network a conversational experience. diff --git a/website/src/pages/hi/ai-suite/token-api-mcp/_meta.js b/website/src/pages/hi/ai-suite/token-api-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/hi/ai-suite/token-api-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/ro/token-api/mcp/claude.mdx b/website/src/pages/hi/ai-suite/token-api-mcp/claude.mdx similarity index 100% rename from website/src/pages/ro/token-api/mcp/claude.mdx rename to website/src/pages/hi/ai-suite/token-api-mcp/claude.mdx diff --git a/website/src/pages/ro/token-api/mcp/cline.mdx b/website/src/pages/hi/ai-suite/token-api-mcp/cline.mdx similarity index 100% rename from website/src/pages/ro/token-api/mcp/cline.mdx rename to website/src/pages/hi/ai-suite/token-api-mcp/cline.mdx diff --git a/website/src/pages/ro/token-api/mcp/cursor.mdx b/website/src/pages/hi/ai-suite/token-api-mcp/cursor.mdx similarity index 100% rename from website/src/pages/ro/token-api/mcp/cursor.mdx rename to website/src/pages/hi/ai-suite/token-api-mcp/cursor.mdx diff --git a/website/src/pages/hi/ai-suite/token-api-mcp/introduction.mdx b/website/src/pages/hi/ai-suite/token-api-mcp/introduction.mdx new file mode 100644 index 000000000000..b61ad0a1c485 --- /dev/null +++ b/website/src/pages/hi/ai-suite/token-api-mcp/introduction.mdx @@ -0,0 +1,23 @@ +--- +title: Token API MCP Introduction +sidebarTitle: 'Introduction' +--- + +Token API MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +This MCP server makes on-chain token data, including metadata, balances, transfers, and holder statistics, accessible through a set of MCP tools. Any compatible client can use these tools to fetch and analyze token information through a standardized interface. It connects to The Graph's hosted Token API database, enabling AI assistants to query real-time blockchain data using natural language requests that get translated into optimized SQL queries. + +The server itself does not host any language model. It simply converts MCP calls into data look-ups and returns structured results, letting the client's own LLM incorporate the results. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Token API data. + +## What You Can Do + +- Retrieve token metadata including name, symbol, decimals, total supply, and contract address +- Get token balances for any wallet address holding a supported ERC-20 token +- Fetch token transfer activity including sender, receiver, amount, and timestamp +- Identify top holders and analyze token distribution +- Ask natural language questions about token data without writing smart contract calls +- Access historical transfer data to analyze token movement over time + +The Token MCP server provides [Claude](/ai-suite/token-api-mcp/claude/), [Cline](/ai-suite/token-api-mcp/cline/), and [Cursor](/ai-suite/token-api-mcp/cursor/) with direct, conversational access to onchain token data. diff --git a/website/src/pages/hi/resources/_meta.js b/website/src/pages/hi/resources/_meta.js index aa8e2d0ec6a8..38c56cf56c43 100644 --- a/website/src/pages/hi/resources/_meta.js +++ b/website/src/pages/hi/resources/_meta.js @@ -7,5 +7,4 @@ export default { roles: titles.roles ?? '', 'migration-guides': titles['migration-guides'] ?? '', 'subgraph-studio-faq': '', - 'claude-mcp': '', } diff --git a/website/src/pages/hi/resources/claude-mcp.mdx b/website/src/pages/hi/resources/claude-mcp.mdx deleted file mode 100644 index 44ed075cffda..000000000000 --- a/website/src/pages/hi/resources/claude-mcp.mdx +++ /dev/null @@ -1,122 +0,0 @@ ---- -title: Claude MCP ---- - -This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. - -## What You Can Do - -With these integrations, you can: - -- **Token API**: Access token and wallet information across multiple blockchains -- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries - -## Prerequisites - -- [Node.js](https://nodejs.org/en/download/) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed -- API keys: - - Token API key from [The Graph Market](https://thegraph.market/) - - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -## Configuration Steps - -### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** - -Paths by operating system: - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -### 2. Add Configuration - -Replace the contents of the existing config file with: - -```json -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "ACCESS_TOKEN" - } - }, - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Keys - -Replace: - -- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) -- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -### 4. Save and Restart - -- Save the configuration file -- Restart Claude Desktop - -### 5. Add The Graph Resources in Claude - -After configuration: - -1. Start a new conversation in Claude Desktop -2. Click on the context menu (top right) -3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP - -> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. - -### 6. Run Queries - -Here are some example queries you can try after setting up the resources: - -### Subgraph Queries - -``` -What are the top pools in Uniswap? -``` - -``` -Who are the top Delegators of The Graph Protocol? -``` - -``` -Please make a bar chart for the number of active loans in Compound for the last 7 days -``` - -### Token API Queries - -``` -Show me the current price of ETH -``` - -``` -What are the top tokens by market cap on Ethereum? -``` - -``` -Analyze this wallet address: 0x... -``` - -## Troubleshooting - -If you encounter issues: - -1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal -2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file -3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs -4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop diff --git a/website/src/pages/hi/subgraphs/_meta.js b/website/src/pages/hi/subgraphs/_meta.js index 4365293ffc72..45841d5f3355 100644 --- a/website/src/pages/hi/subgraphs/_meta.js +++ b/website/src/pages/hi/subgraphs/_meta.js @@ -6,7 +6,6 @@ export default { querying: titles.querying ?? '', developing: titles.developing ?? '', billing: '', - mcp: titles.mcp ?? '', guides: titles.guides, 'best-practices': titles['best-practices'], 'fair-use-policy': '', diff --git a/website/src/pages/hi/subgraphs/mcp/_meta.js b/website/src/pages/hi/subgraphs/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/hi/subgraphs/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/hi/subgraphs/mcp/claude.mdx b/website/src/pages/hi/subgraphs/mcp/claude.mdx deleted file mode 100644 index 027b272cb942..000000000000 --- a/website/src/pages/hi/subgraphs/mcp/claude.mdx +++ /dev/null @@ -1,179 +0,0 @@ ---- -title: Claude Desktop ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. - -## What You Can Do - -The Subgraph MCP integration enables you to: - -- Access the GraphQL schema for any Subgraph on The Graph Network -- Execute GraphQL queries against any Subgraph deployment -- Find top Subgraph deployments for a given keyword or contract address -- Get 30-day query volume for Subgraph deployments -- Ask natural language questions about Subgraph data without writing GraphQL queries manually - -## Prerequisites - -- [Node.js](https://nodejs.org/en) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) - -## Installation Options - -### Option 1: Using npx (Recommended) - -#### Configuration Steps using npx - -#### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Settings** > **Developer** > **Edit Config** - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -#### 2. Add Configuration - -Paste the following settings into your config file: - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -#### 3. Add Your Gateway API Key - -Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). - -#### 4. Save and Restart - -Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. - -### Option 2: Building from Source - -#### Requirements - -- Rust (latest stable version recommended: 1.75+) - ```bash - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - ``` - Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). - -#### Installation Steps - -1. **Clone and Build the Repository** - - ```bash - git clone git@github.com:graphops/subgraph-mcp.git - cd subgraph-mcp - cargo build --release - ``` - -2. **Find the Command Path** - - After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - - Run `pwd` to get the full path - - Combine the output with `/target/release/subgraph-mcp` - -3. **Configure Claude Desktop** - - Open your `claude_desktop_config.json` file as described above and add: - - ```json - { - "mcpServers": { - "subgraph": { - "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", - "env": { - "GATEWAY_API_KEY": "your-api-key-here" - } - } - } - } - ``` - - Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. - -## Using The Graph Resource in Claude - -After configuring Claude Desktop: - -1. Restart Claude Desktop -2. Start a new conversation -3. Click on the context menu (top right) -4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context - -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. - -## Troubleshooting - -To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal -- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments -- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees - -## Key Identifier Types - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -``` -Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one -``` diff --git a/website/src/pages/hi/subgraphs/mcp/cline.mdx b/website/src/pages/hi/subgraphs/mcp/cline.mdx deleted file mode 100644 index 156221d9a127..000000000000 --- a/website/src/pages/hi/subgraphs/mcp/cline.mdx +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: Cline ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. - -## Prerequisites - -- [Cline](https://cline.bot/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `cline_mcp_settings.json` file. - -> **MCP Servers** > **Installed** > **Configure MCP Servers** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -## Using The Graph Resource in Cline - -After configuring Cline: - -1. Restart Cline -2. Start a new conversation -3. Enable the Subgraph MCP from the context menu -4. Add "Subgraph Server Instructions" as a resource to your chat context - -## Available Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/hi/subgraphs/mcp/cursor.mdx b/website/src/pages/hi/subgraphs/mcp/cursor.mdx deleted file mode 100644 index 298f43ece048..000000000000 --- a/website/src/pages/hi/subgraphs/mcp/cursor.mdx +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Cursor ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. - -## Prerequisites - -- [Cursor](https://www.cursor.com/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `~/.cursor/mcp.json` file. - -> **Cursor Settings** > **MCP** > **Add new global MCP Server** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -### 4. Restart Cursor - -Restart Cursor, and start a new chat. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/hi/substreams/_meta.js b/website/src/pages/hi/substreams/_meta.js index a8ee04618eae..658bb8c213c6 100644 --- a/website/src/pages/hi/substreams/_meta.js +++ b/website/src/pages/hi/substreams/_meta.js @@ -5,5 +5,4 @@ export default { introduction: '', developing: titles.developing ?? '', publishing: '', - sps: titles.sps ?? '', } diff --git a/website/src/pages/hi/token-api/_meta-titles.json b/website/src/pages/hi/token-api/_meta-titles.json index 7ed31e0af95d..3108ecd3ebfd 100644 --- a/website/src/pages/hi/token-api/_meta-titles.json +++ b/website/src/pages/hi/token-api/_meta-titles.json @@ -1,6 +1,7 @@ { "mcp": "MCP", "evm": "EVM Endpoints", + "svm": "SVM Endpoints", "monitoring": "Monitoring Endpoints", "faq": "FAQ" } diff --git a/website/src/pages/hi/token-api/_meta.js b/website/src/pages/hi/token-api/_meta.js index f67576d7f612..fb7f7334ea0c 100644 --- a/website/src/pages/hi/token-api/_meta.js +++ b/website/src/pages/hi/token-api/_meta.js @@ -2,8 +2,8 @@ import titles from './_meta-titles.json' export default { 'quick-start': '', - mcp: titles.mcp ?? '', evm: titles.evm ?? '', + svm: titles.svm ?? '', monitoring: titles.monitoring ?? '', faq: '', } diff --git a/website/src/pages/hi/token-api/mcp/_meta.js b/website/src/pages/hi/token-api/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/hi/token-api/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/hi/token-api/mcp/claude.mdx b/website/src/pages/hi/token-api/mcp/claude.mdx deleted file mode 100644 index 43cdf594ab75..000000000000 --- a/website/src/pages/hi/token-api/mcp/claude.mdx +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: Using Claude Desktop to Access the Token API via MCP -sidebarTitle: Claude Desktop ---- - -## आवश्यक शर्तें - -- [Claude Desktop](https://claude.ai/download) installed. -- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. -- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. - -![Screenshot of Claude Desktop's settings panel showing the MCP server configuration option.](/img/claude-preview-token-api.png) - -## विन्यास - -Create or edit your `claude_desktop_config.json` file. - -> **Settings** > **Developer** > **Edit Config** - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -```json label="claude_desktop_config.json" -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -## Troubleshooting - -To enable logs for the MCP, use the `--verbose true` option. - -### ENOENT - -![Error dialog in Claude Desktop showing 'ENOENT' system error, indicating the npx/bunx command wasn't found in the system path.](/img/claude-ENOENT.png) - -Try to use the full path of the command instead: - -- Run `which npx` or `which bunx` to get the path of the command. -- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). - -### Server disconnected - -![Connection error notification in Claude Desktop displaying 'Server disconnected' message.](/img/claude-server-disconnect.png) - -Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. - -> You can always have a look at the full logs under `Claude/logs/mcp.log` and `Claude/logs/mcp-server-pinax.log` for more details. diff --git a/website/src/pages/hi/token-api/mcp/cline.mdx b/website/src/pages/hi/token-api/mcp/cline.mdx deleted file mode 100644 index c52404b0c7a6..000000000000 --- a/website/src/pages/hi/token-api/mcp/cline.mdx +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Using Cline to Access the Token API via MCP -sidebarTitle: Cline ---- - -## आवश्यक शर्तें - -- [Cline](https://cline.bot/) installed. -- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. -- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. - -![Screenshot of Cline's MCP server configuration interface displaying the JSON settings file with mcp-pinax server details visible.](/img/cline-preview-token-api.png) - -## विन्यास - -Create or edit your `cline_mcp_settings.json` file. - -> **MCP Servers** > **Installed** > **Configure MCP Servers** - -```json label="cline_mcp_settings.json" -{ - "mcpServers": { - "mcp-pinax": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -## Troubleshooting - -To enable logs for the MCP, use the `--verbose true` option. - -### ENOENT - -![Cline error dialog showing 'ENOENT' system alert.](/img/cline-error.png) - -Try to use the full path of the command instead: - -- Run `which npx` or `which bunx` to get the path of the command. -- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). - -### Server disconnected - -![Cline connection error notification displaying server disconnection warning.](/img/cline-missing-variables.png) - -Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/hi/token-api/mcp/cursor.mdx b/website/src/pages/hi/token-api/mcp/cursor.mdx deleted file mode 100644 index a77bda66e5e5..000000000000 --- a/website/src/pages/hi/token-api/mcp/cursor.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Using Cursor to Access the Token API via MCP -sidebarTitle: Cursor ---- - -## आवश्यक शर्तें - -- [Cursor](https://www.cursor.com/) installed. -- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. -- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. - -![Screenshot of Cursor's MCP configuration panel.](/img/cursor-preview-token-api.png) - -## विन्यास - -Create or edit your `~/.cursor/mcp.json` file. - -> **Cursor Settings** > **MCP** > **Add new global MCP Server** - -```json label="mcp.json" -{ - "mcpServers": { - "mcp-pinax": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -## Troubleshooting - -![Cursor IDE error notification that reads, "Failed to create client"](/img/cursor-error.png) - -To enable logs for the MCP, use the `--verbose true` option. - -### ENOENT - -Try to use the full path of the command instead: - -- Run `which npx` or `which bunx` to get the path of the command. -- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). - -### Server disconnected - -Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/hi/token-api/svm/_meta.js b/website/src/pages/hi/token-api/svm/_meta.js new file mode 100644 index 000000000000..1a48b82fcbf1 --- /dev/null +++ b/website/src/pages/hi/token-api/svm/_meta.js @@ -0,0 +1,5 @@ +export default { + 'get-balances-svm': '', + 'get-transfers-svm': '', + 'get-swaps-svm': '', +} diff --git a/website/src/pages/hi/token-api/svm/get-balances-svm.mdx b/website/src/pages/hi/token-api/svm/get-balances-svm.mdx new file mode 100644 index 000000000000..c2946c190bf9 --- /dev/null +++ b/website/src/pages/hi/token-api/svm/get-balances-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Balances +template: + type: openApi + apiId: tokenApi + operationId: getBalancesSvm +--- + +Provides Solana tokens balances by token account address. diff --git a/website/src/pages/hi/token-api/svm/get-swaps-svm.mdx b/website/src/pages/hi/token-api/svm/get-swaps-svm.mdx new file mode 100644 index 000000000000..95282a38ac9f --- /dev/null +++ b/website/src/pages/hi/token-api/svm/get-swaps-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsSvm +--- + +Provides Raydium swap events. diff --git a/website/src/pages/hi/token-api/svm/get-transfers-svm.mdx b/website/src/pages/hi/token-api/svm/get-transfers-svm.mdx new file mode 100644 index 000000000000..5335cdddf418 --- /dev/null +++ b/website/src/pages/hi/token-api/svm/get-transfers-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersSvm +--- + +Provides SVM transfer events. diff --git a/website/src/pages/it/ai-suite/_meta-titles.json b/website/src/pages/it/ai-suite/_meta-titles.json new file mode 100644 index 000000000000..5eb482a7092b --- /dev/null +++ b/website/src/pages/it/ai-suite/_meta-titles.json @@ -0,0 +1,6 @@ +{ + "graph-assistant": "Graph Assistant", + "ai-introduction": "The Graph's AI", + "subgraph-mcp": "Subgraph MCP", + "token-api-mcp": "Token API MCP" +} diff --git a/website/src/pages/it/ai-suite/_meta.js b/website/src/pages/it/ai-suite/_meta.js new file mode 100644 index 000000000000..c9e51dfd35fb --- /dev/null +++ b/website/src/pages/it/ai-suite/_meta.js @@ -0,0 +1,8 @@ +import titles from './_meta-titles.json' + +export default { + 'ai-introduction': titles['ai-introduction'], + 'graph-assistant': titles['graph-assistant'], + 'subgraph-mcp': titles['subgraph-mcp'], + 'token-api-mcp': titles['token-api-mcp'], +} diff --git a/website/src/pages/it/ai-suite/ai-introduction.mdx b/website/src/pages/it/ai-suite/ai-introduction.mdx new file mode 100644 index 000000000000..d25cc9f77358 --- /dev/null +++ b/website/src/pages/it/ai-suite/ai-introduction.mdx @@ -0,0 +1,58 @@ +--- +title: The Graph's AI +--- + +Build with speed and scale faster with The Graph's AI. + +## Using AI on The Graph + +Instead of relying on static datasets or centralized APIs, you can now access live blockchain data through our **agentic** app, [Graph Assistant](/ai-suite/graph-assistant/introduction/), and use our AI-native tooling, [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/), and [Token API MCP](/ai-suite/token-api-mcp/introduction/). + +### Why Use Onchain Data with AI? + +Using onchain data with AI unlocks powerful new ways to interact with and understand blockchain ecosystems. + +- **AI for Non-Technical End Users**: AI can turn complex onchain data into accessible insights. Assistants powered by AI enable you to explore and analyze blockchain data without coding. +- **AI for Developers**: You can use AI to interact directly with The Graph's data through your agents or build AI-powered applications on top of it. This streamlines development and opens up more intuitive, dynamic use cases. + +## AI for Non-Technical/End Users + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) is a powerful **agentic** application that empowers users to easily interact with blockchain data. Ask questions in simple, natural language and get rich, AI powered insights. Both technical developers and non-technical product teams can move faster, make smarter decisions, and gain a clearer understanding than ever before. + +### Benefits of Using Graph Assistant + +- **Natural language Input**: You don't need to write complex queries or sift through dashboards. Simply ask your question in plain English and get clear, structured results. +- **Multi-source support**: Works across multiple Subgraphs and Token API. The Assistant automatically determines which data source to use, so you don't have to switch tools or manage endpoints. +- **Schema-free access**: You don't need to understand the schema. You can refer to tokens, protocols, dates, or addresses using natural language. The Assistant takes care of the rest. + +### Conversational Querying with Graph Assistant + +**Example queries:** + +- "List the top-5 swaps by USD value in the last 24 hours." +- "Give me the daily volume on Uniswap." +- "List the 20 most recently registered .eth names." + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) will eventually be a one-stop shop for interacting with The Graph. Right now, it's an agentic AI app that uses state-of-the-art AI techniques, LLMs, and MCPs to understand and answer your questions about [Subgraphs](/subgraphs/developing/subgraphs/) and [Token API](/token-api/quick-start/) data. + +## AI for Developers + +### Enable Natural Language Access to Onchain Data + +[Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) servers connect to Claude, Cline, and Cursor. They enable models to understand, query, and interact with structured onchain data using natural language. MCPs remove the need to write low-level queries or interact with APIs directly. + +### Subgraph MCP + +The [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/) server connects models to Subgraphs on The Graph Network. It allows language models to explore Subgraph schemas, execute GraphQL queries, find relevant Subgraphs by keyword or contract, and surface usage metrics using natural language. + +### Token API MCP + +The [Token API MCP](/ai-suite/token-api-mcp/introduction/) MCP server enables models to access onchain token data. It supports querying token metadata, wallet balances, transfer history, and top token holders through simple prompts. + +#### Benefits of Using Subgraph and Token API MCPs + +- Query Subgraphs and token data using natural language +- Access GraphQL schemas and token metadata without manual queries +- Find Subgraphs by keyword or contract and check 30-day usage +- Retrieve real-time data from The Graph and onchain token sources +- Get wallet balances, transfer history, and top token holders diff --git a/website/src/pages/it/ai-suite/graph-assistant/_meta.js b/website/src/pages/it/ai-suite/graph-assistant/_meta.js new file mode 100644 index 000000000000..74da5e0686a7 --- /dev/null +++ b/website/src/pages/it/ai-suite/graph-assistant/_meta.js @@ -0,0 +1,6 @@ +export default { + 'quick-start': '', + introduction: '', + 'how-to-guide': '', + faq: '', +} diff --git a/website/src/pages/it/ai-suite/graph-assistant/faq.mdx b/website/src/pages/it/ai-suite/graph-assistant/faq.mdx new file mode 100644 index 000000000000..8addf9935524 --- /dev/null +++ b/website/src/pages/it/ai-suite/graph-assistant/faq.mdx @@ -0,0 +1,26 @@ +--- +title: Graph Assistant FAQ +sidebarTitle: 'FAQ' +--- + +This page summarizes some of the most common questions for developers using Graph Assistant. + +1. What is The Graph Assistant? + +The Graph Assistant is an AI-powered chat interface that lets you query blockchain data in plain English. Under the hood, it translates your questions into GraphQL calls against Subgraphs and the Token API, then returns results, no coding required. + +2. What is an agentic application? + +An agentic application combines AI-driven reasoning with external data sources or APIs to take autonomous actions on your behalf. In this case, Graph Assistant acts as an “agent” that interprets your natural-language prompts, builds and dispatches GraphQL queries, and formats the results so that you don't need to write or manage queries yourself. + +3. Which networks and data does Graph Assistant support? + +The Assistant has access to Subgraphs across multiple chains. If a Subgraph is published to The Graph Network and is being indexed, the Assistant can automatically route queries to it. The Assistant also has access to the Token API on Ethereum Mainnet, BSC, Unichain, Arbitrum-One, Optimism, and Polygon. + +4. Is there a usage limit or quota? + +Yes, 10 questions per hour. + +5. What if the Assistant can't interpret my question? + +When the Assistant fails to parse your intent (for example, ambiguous token name, missing context, or an unsupported request), it will prompt you for clarification. For instance, it might ask, “Did you mean XYZ on Ethereum or XYZ on Arbitrum?” or “Please specify a date range for this query.” If you continue to see parsing errors, check that you're using correct token symbols or specifying networks and time frames clearly. diff --git a/website/src/pages/it/ai-suite/graph-assistant/how-to-guide.mdx b/website/src/pages/it/ai-suite/graph-assistant/how-to-guide.mdx new file mode 100644 index 000000000000..463130894ad8 --- /dev/null +++ b/website/src/pages/it/ai-suite/graph-assistant/how-to-guide.mdx @@ -0,0 +1,56 @@ +--- +title: How To Use The Graph Assistant +sidebarTitle: 'How-to Guide' +--- + +## Overview + +You type a natural language question into the chat interface, such as: + +```yaml +'On Uniswap, return the top-10 pools by total value locked in USD.' +``` + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the underlying agents. Do not share sensitive, personal, or private information. + +### Behind the Scenes + +The Assistant: + +1. Interprets your intent +2. Maps it to the correct Subgraphs or Token API endpoint +3. Executes optimized queries +4. Returns clean, structured results + +You don't need to write queries or understand a Subgraph's schema, you simply ask. + +### Example Use Cases + +**Protocol Analytics** + +- “Compare daily active users on Aave vs. Compound in May 2025.” +- “Show me the total value locked (TVL) for XYZDAO over the last quarter.” + +**Token Insights** + +- “What are the top 10 tokens by market cap on Ethereum right now?” +- “How many XYZ did I receive between May 1 and May 15?” + +**Historical Data Retrieval** + +- “Fetch the token price history of XYZ for the last six months.” +- “What was the average gas price on Ethereum during April?” + +**Portfolio Monitoring** + +- “List my wallet’s current token balances and their USD equivalents.” +- “Calculate profit/loss on XYZ since xyz date.” + +**Cross-Chain Comparison** + +- “Show me the 7-day trading volume of XYZ on Ethereum vs. Polygon.” +- “How many XYZ swaps occurred on Arbitrum yesterday?” + +To get started follow the [quickstart](/ai-suite/graph-assistant/quick-start/) and explore its capabilities. diff --git a/website/src/pages/it/ai-suite/graph-assistant/introduction.mdx b/website/src/pages/it/ai-suite/graph-assistant/introduction.mdx new file mode 100644 index 000000000000..65fdf0f96028 --- /dev/null +++ b/website/src/pages/it/ai-suite/graph-assistant/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +[Graph Assistant](https://thegraph.com/graph-assistant) (Beta) gives instant, code-free access to blockchain data, transforming natural language into precise, AI-powered queries without the need to code. + +## Overview + +[Graph Assistant](https://thegraph.com/graph-assistant) is an advanced, [agentic](/en/ai-suite/graph-assistant/faq/) easy-to-use chat interface for querying blockchain data using natural language. Unlike a basic chatbot, Graph Assistant can understand your intent, build complex queries, and execute them automatically. This gives you rich, AI-powered insights from onchain data without writing any code. + +- **Automatically** interprets user intent, generates precise queries, executes them via The Graph's Subgraphs and Token API, and presents structured, AI-powered answers without requiring any code. +- **Removes** the technical complexity found in traditional dashboards or chatbots. It provides composable insights directly from indexed Subgraphs and Token datasets. + +## Core Features + +| Feature | Description | +| --- | --- | +| **Friendly Interface** | Conversational access to blockchain data via natural language. You simply ask questions, the Assistant fetches the answer, and renders results. | +| **Backed by Subgraphs** | Uses subgraphs to index protocol-specific data like transactions, events, and protocol metrics. | +| **Backed by Token API** | Uses Token API for token-level information like balances, transfers, and metadata. | +| **No Setup Required** | No need to configure data sources or write queries. | +| **Automatic Query Building** | The Assistant performs complex queries such as fetching historical token volumes, protocol analytics, or cross-chain data and handles filtering, pagination, and joins across Subgraphs automatically. | + +## Help Shape What's Next + +This is in **beta**, and community input is essential. If you have ideas, questions, or run into anything unexpected, we'd love to hear from you: + +- Join the community on [Discord](https://discord.com/invite/graphprotocol): Provide feedback and stay in the loop with other builders. You'll be able to join the `#graph-assistant` channel to share your experience directly. +- Interested in going deeper? Reach out to become a dedicated beta tester so your specific use case can be better supported. diff --git a/website/src/pages/it/ai-suite/graph-assistant/quick-start.mdx b/website/src/pages/it/ai-suite/graph-assistant/quick-start.mdx new file mode 100644 index 000000000000..13f8478b8d2b --- /dev/null +++ b/website/src/pages/it/ai-suite/graph-assistant/quick-start.mdx @@ -0,0 +1,44 @@ +--- +title: Quick Start +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +This guide provides step-by-step instructions for getting started with Graph Assistant quickly. + +## Step-by Step + +### Step 1. Create an Account + +Go to: [Graph Assistant](https://thegraph.com/graph-assistant) + +- Click Sign Up (or Log In if you already have an account). +- Use your Google, GitHub, X, email or wallet credentials to log in. +- No additional setup is required. + +### Step 2. Open the Assistant Chat + +After logging in: + +- You'll see Graph Assistant's interface. +- At the bottom of the page, you will find a chat input bar. This is where you will interact with the Assistant. + +### Step 3: Ask Your First Question + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +In the input bar, type a natural-language query (everyday language). + +Example: + +```yaml +Show me the 24-hour trading volume of XYZ token on Ethereum +``` + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the AI interface. Do not share sensitive, personal, or private information. + +The Assistant will: + +- Digest your question +- Fetch onchain data using Subgraphs or the Token API +- Return a clean, formatted response with the data you need diff --git a/website/src/pages/it/ai-suite/subgraph-mcp/_meta.js b/website/src/pages/it/ai-suite/subgraph-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/it/ai-suite/subgraph-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/it/ai-suite/subgraph-mcp/claude.mdx b/website/src/pages/it/ai-suite/subgraph-mcp/claude.mdx new file mode 100644 index 000000000000..ff3caa4e3e7f --- /dev/null +++ b/website/src/pages/it/ai-suite/subgraph-mcp/claude.mdx @@ -0,0 +1,169 @@ +--- +title: Claude Desktop +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data via natural language conversations with Claude. + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` diff --git a/website/src/pages/it/ai-suite/subgraph-mcp/cline.mdx b/website/src/pages/it/ai-suite/subgraph-mcp/cline.mdx new file mode 100644 index 000000000000..eb8044bfe991 --- /dev/null +++ b/website/src/pages/it/ai-suite/subgraph-mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "Subgraph Server Instructions" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/it/ai-suite/subgraph-mcp/cursor.mdx b/website/src/pages/it/ai-suite/subgraph-mcp/cursor.mdx new file mode 100644 index 000000000000..6291caf4b06b --- /dev/null +++ b/website/src/pages/it/ai-suite/subgraph-mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/it/ai-suite/subgraph-mcp/introduction.mdx b/website/src/pages/it/ai-suite/subgraph-mcp/introduction.mdx new file mode 100644 index 000000000000..da1272cf9a36 --- /dev/null +++ b/website/src/pages/it/ai-suite/subgraph-mcp/introduction.mdx @@ -0,0 +1,22 @@ +--- +title: Subgraph MCP Introduction +sidebarTitle: 'Introduction' +--- + +Subgraph MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +It presents The Graph's Subgraph data through a set of MCP tools that any MCP-compatible client can call. With these tools, clients can search for relevant Subgraphs, inspect GraphQL schemas, and run queries against specific deployments on The Graph Network all within a single, standardized interface. + +The server itself does not hold a language model. Instead, it translates incoming MCP requests into Subgraph queries and returns the structured results, allowing the client's LLM to transform a natural-language prompt into actionable blockchain data. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Subgraph ecosystem. + +## What You Can Do + +- Access GraphQL schemas for any Subgraph on The Graph Network +- Run GraphQL queries on any Subgraph deployment +- Discover top Subgraph deployments by keyword or contract address +- Retrieve 30-day query volumes for Subgraph deployments +- Ask questions about Subgraph data without writing GraphQL manually + +The Subgraph MCP server allows smooth integration with [Claude](/ai-suite/subgraph-mcp/claude/), [Cline](/ai-suite/subgraph-mcp/cline/), or [Cursor](/ai-suite/subgraph-mcp/cursor/), making blockchain data queries with The Graph Network a conversational experience. diff --git a/website/src/pages/it/ai-suite/token-api-mcp/_meta.js b/website/src/pages/it/ai-suite/token-api-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/it/ai-suite/token-api-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/uk/token-api/mcp/claude.mdx b/website/src/pages/it/ai-suite/token-api-mcp/claude.mdx similarity index 100% rename from website/src/pages/uk/token-api/mcp/claude.mdx rename to website/src/pages/it/ai-suite/token-api-mcp/claude.mdx diff --git a/website/src/pages/uk/token-api/mcp/cline.mdx b/website/src/pages/it/ai-suite/token-api-mcp/cline.mdx similarity index 100% rename from website/src/pages/uk/token-api/mcp/cline.mdx rename to website/src/pages/it/ai-suite/token-api-mcp/cline.mdx diff --git a/website/src/pages/uk/token-api/mcp/cursor.mdx b/website/src/pages/it/ai-suite/token-api-mcp/cursor.mdx similarity index 100% rename from website/src/pages/uk/token-api/mcp/cursor.mdx rename to website/src/pages/it/ai-suite/token-api-mcp/cursor.mdx diff --git a/website/src/pages/it/ai-suite/token-api-mcp/introduction.mdx b/website/src/pages/it/ai-suite/token-api-mcp/introduction.mdx new file mode 100644 index 000000000000..b61ad0a1c485 --- /dev/null +++ b/website/src/pages/it/ai-suite/token-api-mcp/introduction.mdx @@ -0,0 +1,23 @@ +--- +title: Token API MCP Introduction +sidebarTitle: 'Introduction' +--- + +Token API MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +This MCP server makes on-chain token data, including metadata, balances, transfers, and holder statistics, accessible through a set of MCP tools. Any compatible client can use these tools to fetch and analyze token information through a standardized interface. It connects to The Graph's hosted Token API database, enabling AI assistants to query real-time blockchain data using natural language requests that get translated into optimized SQL queries. + +The server itself does not host any language model. It simply converts MCP calls into data look-ups and returns structured results, letting the client's own LLM incorporate the results. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Token API data. + +## What You Can Do + +- Retrieve token metadata including name, symbol, decimals, total supply, and contract address +- Get token balances for any wallet address holding a supported ERC-20 token +- Fetch token transfer activity including sender, receiver, amount, and timestamp +- Identify top holders and analyze token distribution +- Ask natural language questions about token data without writing smart contract calls +- Access historical transfer data to analyze token movement over time + +The Token MCP server provides [Claude](/ai-suite/token-api-mcp/claude/), [Cline](/ai-suite/token-api-mcp/cline/), and [Cursor](/ai-suite/token-api-mcp/cursor/) with direct, conversational access to onchain token data. diff --git a/website/src/pages/it/resources/_meta.js b/website/src/pages/it/resources/_meta.js index aa8e2d0ec6a8..38c56cf56c43 100644 --- a/website/src/pages/it/resources/_meta.js +++ b/website/src/pages/it/resources/_meta.js @@ -7,5 +7,4 @@ export default { roles: titles.roles ?? '', 'migration-guides': titles['migration-guides'] ?? '', 'subgraph-studio-faq': '', - 'claude-mcp': '', } diff --git a/website/src/pages/it/resources/claude-mcp.mdx b/website/src/pages/it/resources/claude-mcp.mdx deleted file mode 100644 index 44ed075cffda..000000000000 --- a/website/src/pages/it/resources/claude-mcp.mdx +++ /dev/null @@ -1,122 +0,0 @@ ---- -title: Claude MCP ---- - -This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. - -## What You Can Do - -With these integrations, you can: - -- **Token API**: Access token and wallet information across multiple blockchains -- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries - -## Prerequisites - -- [Node.js](https://nodejs.org/en/download/) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed -- API keys: - - Token API key from [The Graph Market](https://thegraph.market/) - - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -## Configuration Steps - -### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** - -Paths by operating system: - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -### 2. Add Configuration - -Replace the contents of the existing config file with: - -```json -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "ACCESS_TOKEN" - } - }, - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Keys - -Replace: - -- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) -- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -### 4. Save and Restart - -- Save the configuration file -- Restart Claude Desktop - -### 5. Add The Graph Resources in Claude - -After configuration: - -1. Start a new conversation in Claude Desktop -2. Click on the context menu (top right) -3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP - -> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. - -### 6. Run Queries - -Here are some example queries you can try after setting up the resources: - -### Subgraph Queries - -``` -What are the top pools in Uniswap? -``` - -``` -Who are the top Delegators of The Graph Protocol? -``` - -``` -Please make a bar chart for the number of active loans in Compound for the last 7 days -``` - -### Token API Queries - -``` -Show me the current price of ETH -``` - -``` -What are the top tokens by market cap on Ethereum? -``` - -``` -Analyze this wallet address: 0x... -``` - -## Troubleshooting - -If you encounter issues: - -1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal -2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file -3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs -4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop diff --git a/website/src/pages/it/subgraphs/_meta.js b/website/src/pages/it/subgraphs/_meta.js index 4365293ffc72..45841d5f3355 100644 --- a/website/src/pages/it/subgraphs/_meta.js +++ b/website/src/pages/it/subgraphs/_meta.js @@ -6,7 +6,6 @@ export default { querying: titles.querying ?? '', developing: titles.developing ?? '', billing: '', - mcp: titles.mcp ?? '', guides: titles.guides, 'best-practices': titles['best-practices'], 'fair-use-policy': '', diff --git a/website/src/pages/it/subgraphs/mcp/_meta.js b/website/src/pages/it/subgraphs/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/it/subgraphs/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/it/subgraphs/mcp/claude.mdx b/website/src/pages/it/subgraphs/mcp/claude.mdx deleted file mode 100644 index 027b272cb942..000000000000 --- a/website/src/pages/it/subgraphs/mcp/claude.mdx +++ /dev/null @@ -1,179 +0,0 @@ ---- -title: Claude Desktop ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. - -## What You Can Do - -The Subgraph MCP integration enables you to: - -- Access the GraphQL schema for any Subgraph on The Graph Network -- Execute GraphQL queries against any Subgraph deployment -- Find top Subgraph deployments for a given keyword or contract address -- Get 30-day query volume for Subgraph deployments -- Ask natural language questions about Subgraph data without writing GraphQL queries manually - -## Prerequisites - -- [Node.js](https://nodejs.org/en) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) - -## Installation Options - -### Option 1: Using npx (Recommended) - -#### Configuration Steps using npx - -#### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Settings** > **Developer** > **Edit Config** - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -#### 2. Add Configuration - -Paste the following settings into your config file: - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -#### 3. Add Your Gateway API Key - -Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). - -#### 4. Save and Restart - -Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. - -### Option 2: Building from Source - -#### Requirements - -- Rust (latest stable version recommended: 1.75+) - ```bash - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - ``` - Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). - -#### Installation Steps - -1. **Clone and Build the Repository** - - ```bash - git clone git@github.com:graphops/subgraph-mcp.git - cd subgraph-mcp - cargo build --release - ``` - -2. **Find the Command Path** - - After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - - Run `pwd` to get the full path - - Combine the output with `/target/release/subgraph-mcp` - -3. **Configure Claude Desktop** - - Open your `claude_desktop_config.json` file as described above and add: - - ```json - { - "mcpServers": { - "subgraph": { - "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", - "env": { - "GATEWAY_API_KEY": "your-api-key-here" - } - } - } - } - ``` - - Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. - -## Using The Graph Resource in Claude - -After configuring Claude Desktop: - -1. Restart Claude Desktop -2. Start a new conversation -3. Click on the context menu (top right) -4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context - -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. - -## Troubleshooting - -To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal -- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments -- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees - -## Key Identifier Types - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -``` -Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one -``` diff --git a/website/src/pages/it/subgraphs/mcp/cline.mdx b/website/src/pages/it/subgraphs/mcp/cline.mdx deleted file mode 100644 index 156221d9a127..000000000000 --- a/website/src/pages/it/subgraphs/mcp/cline.mdx +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: Cline ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. - -## Prerequisites - -- [Cline](https://cline.bot/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `cline_mcp_settings.json` file. - -> **MCP Servers** > **Installed** > **Configure MCP Servers** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -## Using The Graph Resource in Cline - -After configuring Cline: - -1. Restart Cline -2. Start a new conversation -3. Enable the Subgraph MCP from the context menu -4. Add "Subgraph Server Instructions" as a resource to your chat context - -## Available Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/it/subgraphs/mcp/cursor.mdx b/website/src/pages/it/subgraphs/mcp/cursor.mdx deleted file mode 100644 index 298f43ece048..000000000000 --- a/website/src/pages/it/subgraphs/mcp/cursor.mdx +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Cursor ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. - -## Prerequisites - -- [Cursor](https://www.cursor.com/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `~/.cursor/mcp.json` file. - -> **Cursor Settings** > **MCP** > **Add new global MCP Server** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -### 4. Restart Cursor - -Restart Cursor, and start a new chat. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/it/substreams/_meta.js b/website/src/pages/it/substreams/_meta.js index a8ee04618eae..658bb8c213c6 100644 --- a/website/src/pages/it/substreams/_meta.js +++ b/website/src/pages/it/substreams/_meta.js @@ -5,5 +5,4 @@ export default { introduction: '', developing: titles.developing ?? '', publishing: '', - sps: titles.sps ?? '', } diff --git a/website/src/pages/it/token-api/_meta-titles.json b/website/src/pages/it/token-api/_meta-titles.json index 7ed31e0af95d..3108ecd3ebfd 100644 --- a/website/src/pages/it/token-api/_meta-titles.json +++ b/website/src/pages/it/token-api/_meta-titles.json @@ -1,6 +1,7 @@ { "mcp": "MCP", "evm": "EVM Endpoints", + "svm": "SVM Endpoints", "monitoring": "Monitoring Endpoints", "faq": "FAQ" } diff --git a/website/src/pages/it/token-api/_meta.js b/website/src/pages/it/token-api/_meta.js index f67576d7f612..fb7f7334ea0c 100644 --- a/website/src/pages/it/token-api/_meta.js +++ b/website/src/pages/it/token-api/_meta.js @@ -2,8 +2,8 @@ import titles from './_meta-titles.json' export default { 'quick-start': '', - mcp: titles.mcp ?? '', evm: titles.evm ?? '', + svm: titles.svm ?? '', monitoring: titles.monitoring ?? '', faq: '', } diff --git a/website/src/pages/it/token-api/mcp/_meta.js b/website/src/pages/it/token-api/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/it/token-api/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/it/token-api/svm/_meta.js b/website/src/pages/it/token-api/svm/_meta.js new file mode 100644 index 000000000000..1a48b82fcbf1 --- /dev/null +++ b/website/src/pages/it/token-api/svm/_meta.js @@ -0,0 +1,5 @@ +export default { + 'get-balances-svm': '', + 'get-transfers-svm': '', + 'get-swaps-svm': '', +} diff --git a/website/src/pages/it/token-api/svm/get-balances-svm.mdx b/website/src/pages/it/token-api/svm/get-balances-svm.mdx new file mode 100644 index 000000000000..c2946c190bf9 --- /dev/null +++ b/website/src/pages/it/token-api/svm/get-balances-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Balances +template: + type: openApi + apiId: tokenApi + operationId: getBalancesSvm +--- + +Provides Solana tokens balances by token account address. diff --git a/website/src/pages/it/token-api/svm/get-swaps-svm.mdx b/website/src/pages/it/token-api/svm/get-swaps-svm.mdx new file mode 100644 index 000000000000..95282a38ac9f --- /dev/null +++ b/website/src/pages/it/token-api/svm/get-swaps-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsSvm +--- + +Provides Raydium swap events. diff --git a/website/src/pages/it/token-api/svm/get-transfers-svm.mdx b/website/src/pages/it/token-api/svm/get-transfers-svm.mdx new file mode 100644 index 000000000000..5335cdddf418 --- /dev/null +++ b/website/src/pages/it/token-api/svm/get-transfers-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersSvm +--- + +Provides SVM transfer events. diff --git a/website/src/pages/ja/ai-suite/_meta-titles.json b/website/src/pages/ja/ai-suite/_meta-titles.json new file mode 100644 index 000000000000..5eb482a7092b --- /dev/null +++ b/website/src/pages/ja/ai-suite/_meta-titles.json @@ -0,0 +1,6 @@ +{ + "graph-assistant": "Graph Assistant", + "ai-introduction": "The Graph's AI", + "subgraph-mcp": "Subgraph MCP", + "token-api-mcp": "Token API MCP" +} diff --git a/website/src/pages/ja/ai-suite/_meta.js b/website/src/pages/ja/ai-suite/_meta.js new file mode 100644 index 000000000000..c9e51dfd35fb --- /dev/null +++ b/website/src/pages/ja/ai-suite/_meta.js @@ -0,0 +1,8 @@ +import titles from './_meta-titles.json' + +export default { + 'ai-introduction': titles['ai-introduction'], + 'graph-assistant': titles['graph-assistant'], + 'subgraph-mcp': titles['subgraph-mcp'], + 'token-api-mcp': titles['token-api-mcp'], +} diff --git a/website/src/pages/ja/ai-suite/ai-introduction.mdx b/website/src/pages/ja/ai-suite/ai-introduction.mdx new file mode 100644 index 000000000000..d25cc9f77358 --- /dev/null +++ b/website/src/pages/ja/ai-suite/ai-introduction.mdx @@ -0,0 +1,58 @@ +--- +title: The Graph's AI +--- + +Build with speed and scale faster with The Graph's AI. + +## Using AI on The Graph + +Instead of relying on static datasets or centralized APIs, you can now access live blockchain data through our **agentic** app, [Graph Assistant](/ai-suite/graph-assistant/introduction/), and use our AI-native tooling, [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/), and [Token API MCP](/ai-suite/token-api-mcp/introduction/). + +### Why Use Onchain Data with AI? + +Using onchain data with AI unlocks powerful new ways to interact with and understand blockchain ecosystems. + +- **AI for Non-Technical End Users**: AI can turn complex onchain data into accessible insights. Assistants powered by AI enable you to explore and analyze blockchain data without coding. +- **AI for Developers**: You can use AI to interact directly with The Graph's data through your agents or build AI-powered applications on top of it. This streamlines development and opens up more intuitive, dynamic use cases. + +## AI for Non-Technical/End Users + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) is a powerful **agentic** application that empowers users to easily interact with blockchain data. Ask questions in simple, natural language and get rich, AI powered insights. Both technical developers and non-technical product teams can move faster, make smarter decisions, and gain a clearer understanding than ever before. + +### Benefits of Using Graph Assistant + +- **Natural language Input**: You don't need to write complex queries or sift through dashboards. Simply ask your question in plain English and get clear, structured results. +- **Multi-source support**: Works across multiple Subgraphs and Token API. The Assistant automatically determines which data source to use, so you don't have to switch tools or manage endpoints. +- **Schema-free access**: You don't need to understand the schema. You can refer to tokens, protocols, dates, or addresses using natural language. The Assistant takes care of the rest. + +### Conversational Querying with Graph Assistant + +**Example queries:** + +- "List the top-5 swaps by USD value in the last 24 hours." +- "Give me the daily volume on Uniswap." +- "List the 20 most recently registered .eth names." + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) will eventually be a one-stop shop for interacting with The Graph. Right now, it's an agentic AI app that uses state-of-the-art AI techniques, LLMs, and MCPs to understand and answer your questions about [Subgraphs](/subgraphs/developing/subgraphs/) and [Token API](/token-api/quick-start/) data. + +## AI for Developers + +### Enable Natural Language Access to Onchain Data + +[Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) servers connect to Claude, Cline, and Cursor. They enable models to understand, query, and interact with structured onchain data using natural language. MCPs remove the need to write low-level queries or interact with APIs directly. + +### Subgraph MCP + +The [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/) server connects models to Subgraphs on The Graph Network. It allows language models to explore Subgraph schemas, execute GraphQL queries, find relevant Subgraphs by keyword or contract, and surface usage metrics using natural language. + +### Token API MCP + +The [Token API MCP](/ai-suite/token-api-mcp/introduction/) MCP server enables models to access onchain token data. It supports querying token metadata, wallet balances, transfer history, and top token holders through simple prompts. + +#### Benefits of Using Subgraph and Token API MCPs + +- Query Subgraphs and token data using natural language +- Access GraphQL schemas and token metadata without manual queries +- Find Subgraphs by keyword or contract and check 30-day usage +- Retrieve real-time data from The Graph and onchain token sources +- Get wallet balances, transfer history, and top token holders diff --git a/website/src/pages/ja/ai-suite/graph-assistant/_meta.js b/website/src/pages/ja/ai-suite/graph-assistant/_meta.js new file mode 100644 index 000000000000..74da5e0686a7 --- /dev/null +++ b/website/src/pages/ja/ai-suite/graph-assistant/_meta.js @@ -0,0 +1,6 @@ +export default { + 'quick-start': '', + introduction: '', + 'how-to-guide': '', + faq: '', +} diff --git a/website/src/pages/ja/ai-suite/graph-assistant/faq.mdx b/website/src/pages/ja/ai-suite/graph-assistant/faq.mdx new file mode 100644 index 000000000000..8addf9935524 --- /dev/null +++ b/website/src/pages/ja/ai-suite/graph-assistant/faq.mdx @@ -0,0 +1,26 @@ +--- +title: Graph Assistant FAQ +sidebarTitle: 'FAQ' +--- + +This page summarizes some of the most common questions for developers using Graph Assistant. + +1. What is The Graph Assistant? + +The Graph Assistant is an AI-powered chat interface that lets you query blockchain data in plain English. Under the hood, it translates your questions into GraphQL calls against Subgraphs and the Token API, then returns results, no coding required. + +2. What is an agentic application? + +An agentic application combines AI-driven reasoning with external data sources or APIs to take autonomous actions on your behalf. In this case, Graph Assistant acts as an “agent” that interprets your natural-language prompts, builds and dispatches GraphQL queries, and formats the results so that you don't need to write or manage queries yourself. + +3. Which networks and data does Graph Assistant support? + +The Assistant has access to Subgraphs across multiple chains. If a Subgraph is published to The Graph Network and is being indexed, the Assistant can automatically route queries to it. The Assistant also has access to the Token API on Ethereum Mainnet, BSC, Unichain, Arbitrum-One, Optimism, and Polygon. + +4. Is there a usage limit or quota? + +Yes, 10 questions per hour. + +5. What if the Assistant can't interpret my question? + +When the Assistant fails to parse your intent (for example, ambiguous token name, missing context, or an unsupported request), it will prompt you for clarification. For instance, it might ask, “Did you mean XYZ on Ethereum or XYZ on Arbitrum?” or “Please specify a date range for this query.” If you continue to see parsing errors, check that you're using correct token symbols or specifying networks and time frames clearly. diff --git a/website/src/pages/ja/ai-suite/graph-assistant/how-to-guide.mdx b/website/src/pages/ja/ai-suite/graph-assistant/how-to-guide.mdx new file mode 100644 index 000000000000..463130894ad8 --- /dev/null +++ b/website/src/pages/ja/ai-suite/graph-assistant/how-to-guide.mdx @@ -0,0 +1,56 @@ +--- +title: How To Use The Graph Assistant +sidebarTitle: 'How-to Guide' +--- + +## Overview + +You type a natural language question into the chat interface, such as: + +```yaml +'On Uniswap, return the top-10 pools by total value locked in USD.' +``` + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the underlying agents. Do not share sensitive, personal, or private information. + +### Behind the Scenes + +The Assistant: + +1. Interprets your intent +2. Maps it to the correct Subgraphs or Token API endpoint +3. Executes optimized queries +4. Returns clean, structured results + +You don't need to write queries or understand a Subgraph's schema, you simply ask. + +### Example Use Cases + +**Protocol Analytics** + +- “Compare daily active users on Aave vs. Compound in May 2025.” +- “Show me the total value locked (TVL) for XYZDAO over the last quarter.” + +**Token Insights** + +- “What are the top 10 tokens by market cap on Ethereum right now?” +- “How many XYZ did I receive between May 1 and May 15?” + +**Historical Data Retrieval** + +- “Fetch the token price history of XYZ for the last six months.” +- “What was the average gas price on Ethereum during April?” + +**Portfolio Monitoring** + +- “List my wallet’s current token balances and their USD equivalents.” +- “Calculate profit/loss on XYZ since xyz date.” + +**Cross-Chain Comparison** + +- “Show me the 7-day trading volume of XYZ on Ethereum vs. Polygon.” +- “How many XYZ swaps occurred on Arbitrum yesterday?” + +To get started follow the [quickstart](/ai-suite/graph-assistant/quick-start/) and explore its capabilities. diff --git a/website/src/pages/ja/ai-suite/graph-assistant/introduction.mdx b/website/src/pages/ja/ai-suite/graph-assistant/introduction.mdx new file mode 100644 index 000000000000..65fdf0f96028 --- /dev/null +++ b/website/src/pages/ja/ai-suite/graph-assistant/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +[Graph Assistant](https://thegraph.com/graph-assistant) (Beta) gives instant, code-free access to blockchain data, transforming natural language into precise, AI-powered queries without the need to code. + +## Overview + +[Graph Assistant](https://thegraph.com/graph-assistant) is an advanced, [agentic](/en/ai-suite/graph-assistant/faq/) easy-to-use chat interface for querying blockchain data using natural language. Unlike a basic chatbot, Graph Assistant can understand your intent, build complex queries, and execute them automatically. This gives you rich, AI-powered insights from onchain data without writing any code. + +- **Automatically** interprets user intent, generates precise queries, executes them via The Graph's Subgraphs and Token API, and presents structured, AI-powered answers without requiring any code. +- **Removes** the technical complexity found in traditional dashboards or chatbots. It provides composable insights directly from indexed Subgraphs and Token datasets. + +## Core Features + +| Feature | Description | +| --- | --- | +| **Friendly Interface** | Conversational access to blockchain data via natural language. You simply ask questions, the Assistant fetches the answer, and renders results. | +| **Backed by Subgraphs** | Uses subgraphs to index protocol-specific data like transactions, events, and protocol metrics. | +| **Backed by Token API** | Uses Token API for token-level information like balances, transfers, and metadata. | +| **No Setup Required** | No need to configure data sources or write queries. | +| **Automatic Query Building** | The Assistant performs complex queries such as fetching historical token volumes, protocol analytics, or cross-chain data and handles filtering, pagination, and joins across Subgraphs automatically. | + +## Help Shape What's Next + +This is in **beta**, and community input is essential. If you have ideas, questions, or run into anything unexpected, we'd love to hear from you: + +- Join the community on [Discord](https://discord.com/invite/graphprotocol): Provide feedback and stay in the loop with other builders. You'll be able to join the `#graph-assistant` channel to share your experience directly. +- Interested in going deeper? Reach out to become a dedicated beta tester so your specific use case can be better supported. diff --git a/website/src/pages/ja/ai-suite/graph-assistant/quick-start.mdx b/website/src/pages/ja/ai-suite/graph-assistant/quick-start.mdx new file mode 100644 index 000000000000..13f8478b8d2b --- /dev/null +++ b/website/src/pages/ja/ai-suite/graph-assistant/quick-start.mdx @@ -0,0 +1,44 @@ +--- +title: Quick Start +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +This guide provides step-by-step instructions for getting started with Graph Assistant quickly. + +## Step-by Step + +### Step 1. Create an Account + +Go to: [Graph Assistant](https://thegraph.com/graph-assistant) + +- Click Sign Up (or Log In if you already have an account). +- Use your Google, GitHub, X, email or wallet credentials to log in. +- No additional setup is required. + +### Step 2. Open the Assistant Chat + +After logging in: + +- You'll see Graph Assistant's interface. +- At the bottom of the page, you will find a chat input bar. This is where you will interact with the Assistant. + +### Step 3: Ask Your First Question + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +In the input bar, type a natural-language query (everyday language). + +Example: + +```yaml +Show me the 24-hour trading volume of XYZ token on Ethereum +``` + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the AI interface. Do not share sensitive, personal, or private information. + +The Assistant will: + +- Digest your question +- Fetch onchain data using Subgraphs or the Token API +- Return a clean, formatted response with the data you need diff --git a/website/src/pages/ja/ai-suite/subgraph-mcp/_meta.js b/website/src/pages/ja/ai-suite/subgraph-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/ja/ai-suite/subgraph-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/ja/ai-suite/subgraph-mcp/claude.mdx b/website/src/pages/ja/ai-suite/subgraph-mcp/claude.mdx new file mode 100644 index 000000000000..ff3caa4e3e7f --- /dev/null +++ b/website/src/pages/ja/ai-suite/subgraph-mcp/claude.mdx @@ -0,0 +1,169 @@ +--- +title: Claude Desktop +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data via natural language conversations with Claude. + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` diff --git a/website/src/pages/ja/ai-suite/subgraph-mcp/cline.mdx b/website/src/pages/ja/ai-suite/subgraph-mcp/cline.mdx new file mode 100644 index 000000000000..eb8044bfe991 --- /dev/null +++ b/website/src/pages/ja/ai-suite/subgraph-mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "Subgraph Server Instructions" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/ja/ai-suite/subgraph-mcp/cursor.mdx b/website/src/pages/ja/ai-suite/subgraph-mcp/cursor.mdx new file mode 100644 index 000000000000..6291caf4b06b --- /dev/null +++ b/website/src/pages/ja/ai-suite/subgraph-mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/ja/ai-suite/subgraph-mcp/introduction.mdx b/website/src/pages/ja/ai-suite/subgraph-mcp/introduction.mdx new file mode 100644 index 000000000000..da1272cf9a36 --- /dev/null +++ b/website/src/pages/ja/ai-suite/subgraph-mcp/introduction.mdx @@ -0,0 +1,22 @@ +--- +title: Subgraph MCP Introduction +sidebarTitle: 'Introduction' +--- + +Subgraph MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +It presents The Graph's Subgraph data through a set of MCP tools that any MCP-compatible client can call. With these tools, clients can search for relevant Subgraphs, inspect GraphQL schemas, and run queries against specific deployments on The Graph Network all within a single, standardized interface. + +The server itself does not hold a language model. Instead, it translates incoming MCP requests into Subgraph queries and returns the structured results, allowing the client's LLM to transform a natural-language prompt into actionable blockchain data. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Subgraph ecosystem. + +## What You Can Do + +- Access GraphQL schemas for any Subgraph on The Graph Network +- Run GraphQL queries on any Subgraph deployment +- Discover top Subgraph deployments by keyword or contract address +- Retrieve 30-day query volumes for Subgraph deployments +- Ask questions about Subgraph data without writing GraphQL manually + +The Subgraph MCP server allows smooth integration with [Claude](/ai-suite/subgraph-mcp/claude/), [Cline](/ai-suite/subgraph-mcp/cline/), or [Cursor](/ai-suite/subgraph-mcp/cursor/), making blockchain data queries with The Graph Network a conversational experience. diff --git a/website/src/pages/ja/ai-suite/token-api-mcp/_meta.js b/website/src/pages/ja/ai-suite/token-api-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/ja/ai-suite/token-api-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/vi/token-api/mcp/claude.mdx b/website/src/pages/ja/ai-suite/token-api-mcp/claude.mdx similarity index 100% rename from website/src/pages/vi/token-api/mcp/claude.mdx rename to website/src/pages/ja/ai-suite/token-api-mcp/claude.mdx diff --git a/website/src/pages/vi/token-api/mcp/cline.mdx b/website/src/pages/ja/ai-suite/token-api-mcp/cline.mdx similarity index 100% rename from website/src/pages/vi/token-api/mcp/cline.mdx rename to website/src/pages/ja/ai-suite/token-api-mcp/cline.mdx diff --git a/website/src/pages/vi/token-api/mcp/cursor.mdx b/website/src/pages/ja/ai-suite/token-api-mcp/cursor.mdx similarity index 100% rename from website/src/pages/vi/token-api/mcp/cursor.mdx rename to website/src/pages/ja/ai-suite/token-api-mcp/cursor.mdx diff --git a/website/src/pages/ja/ai-suite/token-api-mcp/introduction.mdx b/website/src/pages/ja/ai-suite/token-api-mcp/introduction.mdx new file mode 100644 index 000000000000..b61ad0a1c485 --- /dev/null +++ b/website/src/pages/ja/ai-suite/token-api-mcp/introduction.mdx @@ -0,0 +1,23 @@ +--- +title: Token API MCP Introduction +sidebarTitle: 'Introduction' +--- + +Token API MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +This MCP server makes on-chain token data, including metadata, balances, transfers, and holder statistics, accessible through a set of MCP tools. Any compatible client can use these tools to fetch and analyze token information through a standardized interface. It connects to The Graph's hosted Token API database, enabling AI assistants to query real-time blockchain data using natural language requests that get translated into optimized SQL queries. + +The server itself does not host any language model. It simply converts MCP calls into data look-ups and returns structured results, letting the client's own LLM incorporate the results. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Token API data. + +## What You Can Do + +- Retrieve token metadata including name, symbol, decimals, total supply, and contract address +- Get token balances for any wallet address holding a supported ERC-20 token +- Fetch token transfer activity including sender, receiver, amount, and timestamp +- Identify top holders and analyze token distribution +- Ask natural language questions about token data without writing smart contract calls +- Access historical transfer data to analyze token movement over time + +The Token MCP server provides [Claude](/ai-suite/token-api-mcp/claude/), [Cline](/ai-suite/token-api-mcp/cline/), and [Cursor](/ai-suite/token-api-mcp/cursor/) with direct, conversational access to onchain token data. diff --git a/website/src/pages/ja/resources/_meta.js b/website/src/pages/ja/resources/_meta.js index aa8e2d0ec6a8..38c56cf56c43 100644 --- a/website/src/pages/ja/resources/_meta.js +++ b/website/src/pages/ja/resources/_meta.js @@ -7,5 +7,4 @@ export default { roles: titles.roles ?? '', 'migration-guides': titles['migration-guides'] ?? '', 'subgraph-studio-faq': '', - 'claude-mcp': '', } diff --git a/website/src/pages/ja/resources/claude-mcp.mdx b/website/src/pages/ja/resources/claude-mcp.mdx deleted file mode 100644 index 44ed075cffda..000000000000 --- a/website/src/pages/ja/resources/claude-mcp.mdx +++ /dev/null @@ -1,122 +0,0 @@ ---- -title: Claude MCP ---- - -This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. - -## What You Can Do - -With these integrations, you can: - -- **Token API**: Access token and wallet information across multiple blockchains -- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries - -## Prerequisites - -- [Node.js](https://nodejs.org/en/download/) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed -- API keys: - - Token API key from [The Graph Market](https://thegraph.market/) - - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -## Configuration Steps - -### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** - -Paths by operating system: - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -### 2. Add Configuration - -Replace the contents of the existing config file with: - -```json -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "ACCESS_TOKEN" - } - }, - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Keys - -Replace: - -- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) -- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -### 4. Save and Restart - -- Save the configuration file -- Restart Claude Desktop - -### 5. Add The Graph Resources in Claude - -After configuration: - -1. Start a new conversation in Claude Desktop -2. Click on the context menu (top right) -3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP - -> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. - -### 6. Run Queries - -Here are some example queries you can try after setting up the resources: - -### Subgraph Queries - -``` -What are the top pools in Uniswap? -``` - -``` -Who are the top Delegators of The Graph Protocol? -``` - -``` -Please make a bar chart for the number of active loans in Compound for the last 7 days -``` - -### Token API Queries - -``` -Show me the current price of ETH -``` - -``` -What are the top tokens by market cap on Ethereum? -``` - -``` -Analyze this wallet address: 0x... -``` - -## Troubleshooting - -If you encounter issues: - -1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal -2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file -3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs -4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop diff --git a/website/src/pages/ja/subgraphs/_meta.js b/website/src/pages/ja/subgraphs/_meta.js index 4365293ffc72..45841d5f3355 100644 --- a/website/src/pages/ja/subgraphs/_meta.js +++ b/website/src/pages/ja/subgraphs/_meta.js @@ -6,7 +6,6 @@ export default { querying: titles.querying ?? '', developing: titles.developing ?? '', billing: '', - mcp: titles.mcp ?? '', guides: titles.guides, 'best-practices': titles['best-practices'], 'fair-use-policy': '', diff --git a/website/src/pages/ja/subgraphs/mcp/_meta.js b/website/src/pages/ja/subgraphs/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/ja/subgraphs/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/ja/subgraphs/mcp/claude.mdx b/website/src/pages/ja/subgraphs/mcp/claude.mdx deleted file mode 100644 index 027b272cb942..000000000000 --- a/website/src/pages/ja/subgraphs/mcp/claude.mdx +++ /dev/null @@ -1,179 +0,0 @@ ---- -title: Claude Desktop ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. - -## What You Can Do - -The Subgraph MCP integration enables you to: - -- Access the GraphQL schema for any Subgraph on The Graph Network -- Execute GraphQL queries against any Subgraph deployment -- Find top Subgraph deployments for a given keyword or contract address -- Get 30-day query volume for Subgraph deployments -- Ask natural language questions about Subgraph data without writing GraphQL queries manually - -## Prerequisites - -- [Node.js](https://nodejs.org/en) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) - -## Installation Options - -### Option 1: Using npx (Recommended) - -#### Configuration Steps using npx - -#### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Settings** > **Developer** > **Edit Config** - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -#### 2. Add Configuration - -Paste the following settings into your config file: - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -#### 3. Add Your Gateway API Key - -Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). - -#### 4. Save and Restart - -Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. - -### Option 2: Building from Source - -#### Requirements - -- Rust (latest stable version recommended: 1.75+) - ```bash - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - ``` - Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). - -#### Installation Steps - -1. **Clone and Build the Repository** - - ```bash - git clone git@github.com:graphops/subgraph-mcp.git - cd subgraph-mcp - cargo build --release - ``` - -2. **Find the Command Path** - - After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - - Run `pwd` to get the full path - - Combine the output with `/target/release/subgraph-mcp` - -3. **Configure Claude Desktop** - - Open your `claude_desktop_config.json` file as described above and add: - - ```json - { - "mcpServers": { - "subgraph": { - "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", - "env": { - "GATEWAY_API_KEY": "your-api-key-here" - } - } - } - } - ``` - - Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. - -## Using The Graph Resource in Claude - -After configuring Claude Desktop: - -1. Restart Claude Desktop -2. Start a new conversation -3. Click on the context menu (top right) -4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context - -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. - -## Troubleshooting - -To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal -- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments -- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees - -## Key Identifier Types - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -``` -Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one -``` diff --git a/website/src/pages/ja/subgraphs/mcp/cline.mdx b/website/src/pages/ja/subgraphs/mcp/cline.mdx deleted file mode 100644 index 156221d9a127..000000000000 --- a/website/src/pages/ja/subgraphs/mcp/cline.mdx +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: Cline ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. - -## Prerequisites - -- [Cline](https://cline.bot/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `cline_mcp_settings.json` file. - -> **MCP Servers** > **Installed** > **Configure MCP Servers** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -## Using The Graph Resource in Cline - -After configuring Cline: - -1. Restart Cline -2. Start a new conversation -3. Enable the Subgraph MCP from the context menu -4. Add "Subgraph Server Instructions" as a resource to your chat context - -## Available Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/ja/subgraphs/mcp/cursor.mdx b/website/src/pages/ja/subgraphs/mcp/cursor.mdx deleted file mode 100644 index 298f43ece048..000000000000 --- a/website/src/pages/ja/subgraphs/mcp/cursor.mdx +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Cursor ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. - -## Prerequisites - -- [Cursor](https://www.cursor.com/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `~/.cursor/mcp.json` file. - -> **Cursor Settings** > **MCP** > **Add new global MCP Server** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -### 4. Restart Cursor - -Restart Cursor, and start a new chat. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/ja/substreams/_meta.js b/website/src/pages/ja/substreams/_meta.js index a8ee04618eae..658bb8c213c6 100644 --- a/website/src/pages/ja/substreams/_meta.js +++ b/website/src/pages/ja/substreams/_meta.js @@ -5,5 +5,4 @@ export default { introduction: '', developing: titles.developing ?? '', publishing: '', - sps: titles.sps ?? '', } diff --git a/website/src/pages/ja/token-api/_meta-titles.json b/website/src/pages/ja/token-api/_meta-titles.json index 7ed31e0af95d..3108ecd3ebfd 100644 --- a/website/src/pages/ja/token-api/_meta-titles.json +++ b/website/src/pages/ja/token-api/_meta-titles.json @@ -1,6 +1,7 @@ { "mcp": "MCP", "evm": "EVM Endpoints", + "svm": "SVM Endpoints", "monitoring": "Monitoring Endpoints", "faq": "FAQ" } diff --git a/website/src/pages/ja/token-api/_meta.js b/website/src/pages/ja/token-api/_meta.js index f67576d7f612..fb7f7334ea0c 100644 --- a/website/src/pages/ja/token-api/_meta.js +++ b/website/src/pages/ja/token-api/_meta.js @@ -2,8 +2,8 @@ import titles from './_meta-titles.json' export default { 'quick-start': '', - mcp: titles.mcp ?? '', evm: titles.evm ?? '', + svm: titles.svm ?? '', monitoring: titles.monitoring ?? '', faq: '', } diff --git a/website/src/pages/ja/token-api/mcp/_meta.js b/website/src/pages/ja/token-api/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/ja/token-api/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/ja/token-api/mcp/claude.mdx b/website/src/pages/ja/token-api/mcp/claude.mdx deleted file mode 100644 index 85f766b41550..000000000000 --- a/website/src/pages/ja/token-api/mcp/claude.mdx +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: Using Claude Desktop to Access the Token API via MCP -sidebarTitle: Claude Desktop ---- - -## Prerequisites - -- [Claude Desktop](https://claude.ai/download) installed. -- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. -- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. - -![Screenshot of Claude Desktop's settings panel showing the MCP server configuration option.](/img/claude-preview-token-api.png) - -## コンフィギュレーション - -Create or edit your `claude_desktop_config.json` file. - -> **Settings** > **Developer** > **Edit Config** - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -```json label="claude_desktop_config.json" -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -## Troubleshooting - -To enable logs for the MCP, use the `--verbose true` option. - -### ENOENT - -![Error dialog in Claude Desktop showing 'ENOENT' system error, indicating the npx/bunx command wasn't found in the system path.](/img/claude-ENOENT.png) - -Try to use the full path of the command instead: - -- Run `which npx` or `which bunx` to get the path of the command. -- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). - -### Server disconnected - -![Connection error notification in Claude Desktop displaying 'Server disconnected' message.](/img/claude-server-disconnect.png) - -Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. - -> You can always have a look at the full logs under `Claude/logs/mcp.log` and `Claude/logs/mcp-server-pinax.log` for more details. diff --git a/website/src/pages/ja/token-api/mcp/cline.mdx b/website/src/pages/ja/token-api/mcp/cline.mdx deleted file mode 100644 index 1ab2d75261e0..000000000000 --- a/website/src/pages/ja/token-api/mcp/cline.mdx +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Using Cline to Access the Token API via MCP -sidebarTitle: Cline ---- - -## Prerequisites - -- [Cline](https://cline.bot/) installed. -- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. -- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. - -![Screenshot of Cline's MCP server configuration interface displaying the JSON settings file with mcp-pinax server details visible.](/img/cline-preview-token-api.png) - -## コンフィギュレーション - -Create or edit your `cline_mcp_settings.json` file. - -> **MCP Servers** > **Installed** > **Configure MCP Servers** - -```json label="cline_mcp_settings.json" -{ - "mcpServers": { - "mcp-pinax": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -## Troubleshooting - -To enable logs for the MCP, use the `--verbose true` option. - -### ENOENT - -![Cline error dialog showing 'ENOENT' system alert.](/img/cline-error.png) - -Try to use the full path of the command instead: - -- Run `which npx` or `which bunx` to get the path of the command. -- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). - -### Server disconnected - -![Cline connection error notification displaying server disconnection warning.](/img/cline-missing-variables.png) - -Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/ja/token-api/mcp/cursor.mdx b/website/src/pages/ja/token-api/mcp/cursor.mdx deleted file mode 100644 index 5ecf8867b84c..000000000000 --- a/website/src/pages/ja/token-api/mcp/cursor.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Using Cursor to Access the Token API via MCP -sidebarTitle: Cursor ---- - -## Prerequisites - -- [Cursor](https://www.cursor.com/) installed. -- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. -- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. - -![Screenshot of Cursor's MCP configuration panel.](/img/cursor-preview-token-api.png) - -## コンフィギュレーション - -Create or edit your `~/.cursor/mcp.json` file. - -> **Cursor Settings** > **MCP** > **Add new global MCP Server** - -```json label="mcp.json" -{ - "mcpServers": { - "mcp-pinax": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -## Troubleshooting - -![Cursor IDE error notification that reads, "Failed to create client"](/img/cursor-error.png) - -To enable logs for the MCP, use the `--verbose true` option. - -### ENOENT - -Try to use the full path of the command instead: - -- Run `which npx` or `which bunx` to get the path of the command. -- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). - -### Server disconnected - -Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/ja/token-api/svm/_meta.js b/website/src/pages/ja/token-api/svm/_meta.js new file mode 100644 index 000000000000..1a48b82fcbf1 --- /dev/null +++ b/website/src/pages/ja/token-api/svm/_meta.js @@ -0,0 +1,5 @@ +export default { + 'get-balances-svm': '', + 'get-transfers-svm': '', + 'get-swaps-svm': '', +} diff --git a/website/src/pages/ja/token-api/svm/get-balances-svm.mdx b/website/src/pages/ja/token-api/svm/get-balances-svm.mdx new file mode 100644 index 000000000000..c2946c190bf9 --- /dev/null +++ b/website/src/pages/ja/token-api/svm/get-balances-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Balances +template: + type: openApi + apiId: tokenApi + operationId: getBalancesSvm +--- + +Provides Solana tokens balances by token account address. diff --git a/website/src/pages/ja/token-api/svm/get-swaps-svm.mdx b/website/src/pages/ja/token-api/svm/get-swaps-svm.mdx new file mode 100644 index 000000000000..95282a38ac9f --- /dev/null +++ b/website/src/pages/ja/token-api/svm/get-swaps-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsSvm +--- + +Provides Raydium swap events. diff --git a/website/src/pages/ja/token-api/svm/get-transfers-svm.mdx b/website/src/pages/ja/token-api/svm/get-transfers-svm.mdx new file mode 100644 index 000000000000..5335cdddf418 --- /dev/null +++ b/website/src/pages/ja/token-api/svm/get-transfers-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersSvm +--- + +Provides SVM transfer events. diff --git a/website/src/pages/ko/ai-suite/_meta-titles.json b/website/src/pages/ko/ai-suite/_meta-titles.json new file mode 100644 index 000000000000..5eb482a7092b --- /dev/null +++ b/website/src/pages/ko/ai-suite/_meta-titles.json @@ -0,0 +1,6 @@ +{ + "graph-assistant": "Graph Assistant", + "ai-introduction": "The Graph's AI", + "subgraph-mcp": "Subgraph MCP", + "token-api-mcp": "Token API MCP" +} diff --git a/website/src/pages/ko/ai-suite/_meta.js b/website/src/pages/ko/ai-suite/_meta.js new file mode 100644 index 000000000000..c9e51dfd35fb --- /dev/null +++ b/website/src/pages/ko/ai-suite/_meta.js @@ -0,0 +1,8 @@ +import titles from './_meta-titles.json' + +export default { + 'ai-introduction': titles['ai-introduction'], + 'graph-assistant': titles['graph-assistant'], + 'subgraph-mcp': titles['subgraph-mcp'], + 'token-api-mcp': titles['token-api-mcp'], +} diff --git a/website/src/pages/ko/ai-suite/ai-introduction.mdx b/website/src/pages/ko/ai-suite/ai-introduction.mdx new file mode 100644 index 000000000000..d25cc9f77358 --- /dev/null +++ b/website/src/pages/ko/ai-suite/ai-introduction.mdx @@ -0,0 +1,58 @@ +--- +title: The Graph's AI +--- + +Build with speed and scale faster with The Graph's AI. + +## Using AI on The Graph + +Instead of relying on static datasets or centralized APIs, you can now access live blockchain data through our **agentic** app, [Graph Assistant](/ai-suite/graph-assistant/introduction/), and use our AI-native tooling, [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/), and [Token API MCP](/ai-suite/token-api-mcp/introduction/). + +### Why Use Onchain Data with AI? + +Using onchain data with AI unlocks powerful new ways to interact with and understand blockchain ecosystems. + +- **AI for Non-Technical End Users**: AI can turn complex onchain data into accessible insights. Assistants powered by AI enable you to explore and analyze blockchain data without coding. +- **AI for Developers**: You can use AI to interact directly with The Graph's data through your agents or build AI-powered applications on top of it. This streamlines development and opens up more intuitive, dynamic use cases. + +## AI for Non-Technical/End Users + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) is a powerful **agentic** application that empowers users to easily interact with blockchain data. Ask questions in simple, natural language and get rich, AI powered insights. Both technical developers and non-technical product teams can move faster, make smarter decisions, and gain a clearer understanding than ever before. + +### Benefits of Using Graph Assistant + +- **Natural language Input**: You don't need to write complex queries or sift through dashboards. Simply ask your question in plain English and get clear, structured results. +- **Multi-source support**: Works across multiple Subgraphs and Token API. The Assistant automatically determines which data source to use, so you don't have to switch tools or manage endpoints. +- **Schema-free access**: You don't need to understand the schema. You can refer to tokens, protocols, dates, or addresses using natural language. The Assistant takes care of the rest. + +### Conversational Querying with Graph Assistant + +**Example queries:** + +- "List the top-5 swaps by USD value in the last 24 hours." +- "Give me the daily volume on Uniswap." +- "List the 20 most recently registered .eth names." + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) will eventually be a one-stop shop for interacting with The Graph. Right now, it's an agentic AI app that uses state-of-the-art AI techniques, LLMs, and MCPs to understand and answer your questions about [Subgraphs](/subgraphs/developing/subgraphs/) and [Token API](/token-api/quick-start/) data. + +## AI for Developers + +### Enable Natural Language Access to Onchain Data + +[Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) servers connect to Claude, Cline, and Cursor. They enable models to understand, query, and interact with structured onchain data using natural language. MCPs remove the need to write low-level queries or interact with APIs directly. + +### Subgraph MCP + +The [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/) server connects models to Subgraphs on The Graph Network. It allows language models to explore Subgraph schemas, execute GraphQL queries, find relevant Subgraphs by keyword or contract, and surface usage metrics using natural language. + +### Token API MCP + +The [Token API MCP](/ai-suite/token-api-mcp/introduction/) MCP server enables models to access onchain token data. It supports querying token metadata, wallet balances, transfer history, and top token holders through simple prompts. + +#### Benefits of Using Subgraph and Token API MCPs + +- Query Subgraphs and token data using natural language +- Access GraphQL schemas and token metadata without manual queries +- Find Subgraphs by keyword or contract and check 30-day usage +- Retrieve real-time data from The Graph and onchain token sources +- Get wallet balances, transfer history, and top token holders diff --git a/website/src/pages/ko/ai-suite/graph-assistant/_meta.js b/website/src/pages/ko/ai-suite/graph-assistant/_meta.js new file mode 100644 index 000000000000..74da5e0686a7 --- /dev/null +++ b/website/src/pages/ko/ai-suite/graph-assistant/_meta.js @@ -0,0 +1,6 @@ +export default { + 'quick-start': '', + introduction: '', + 'how-to-guide': '', + faq: '', +} diff --git a/website/src/pages/ko/ai-suite/graph-assistant/faq.mdx b/website/src/pages/ko/ai-suite/graph-assistant/faq.mdx new file mode 100644 index 000000000000..8addf9935524 --- /dev/null +++ b/website/src/pages/ko/ai-suite/graph-assistant/faq.mdx @@ -0,0 +1,26 @@ +--- +title: Graph Assistant FAQ +sidebarTitle: 'FAQ' +--- + +This page summarizes some of the most common questions for developers using Graph Assistant. + +1. What is The Graph Assistant? + +The Graph Assistant is an AI-powered chat interface that lets you query blockchain data in plain English. Under the hood, it translates your questions into GraphQL calls against Subgraphs and the Token API, then returns results, no coding required. + +2. What is an agentic application? + +An agentic application combines AI-driven reasoning with external data sources or APIs to take autonomous actions on your behalf. In this case, Graph Assistant acts as an “agent” that interprets your natural-language prompts, builds and dispatches GraphQL queries, and formats the results so that you don't need to write or manage queries yourself. + +3. Which networks and data does Graph Assistant support? + +The Assistant has access to Subgraphs across multiple chains. If a Subgraph is published to The Graph Network and is being indexed, the Assistant can automatically route queries to it. The Assistant also has access to the Token API on Ethereum Mainnet, BSC, Unichain, Arbitrum-One, Optimism, and Polygon. + +4. Is there a usage limit or quota? + +Yes, 10 questions per hour. + +5. What if the Assistant can't interpret my question? + +When the Assistant fails to parse your intent (for example, ambiguous token name, missing context, or an unsupported request), it will prompt you for clarification. For instance, it might ask, “Did you mean XYZ on Ethereum or XYZ on Arbitrum?” or “Please specify a date range for this query.” If you continue to see parsing errors, check that you're using correct token symbols or specifying networks and time frames clearly. diff --git a/website/src/pages/ko/ai-suite/graph-assistant/how-to-guide.mdx b/website/src/pages/ko/ai-suite/graph-assistant/how-to-guide.mdx new file mode 100644 index 000000000000..463130894ad8 --- /dev/null +++ b/website/src/pages/ko/ai-suite/graph-assistant/how-to-guide.mdx @@ -0,0 +1,56 @@ +--- +title: How To Use The Graph Assistant +sidebarTitle: 'How-to Guide' +--- + +## Overview + +You type a natural language question into the chat interface, such as: + +```yaml +'On Uniswap, return the top-10 pools by total value locked in USD.' +``` + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the underlying agents. Do not share sensitive, personal, or private information. + +### Behind the Scenes + +The Assistant: + +1. Interprets your intent +2. Maps it to the correct Subgraphs or Token API endpoint +3. Executes optimized queries +4. Returns clean, structured results + +You don't need to write queries or understand a Subgraph's schema, you simply ask. + +### Example Use Cases + +**Protocol Analytics** + +- “Compare daily active users on Aave vs. Compound in May 2025.” +- “Show me the total value locked (TVL) for XYZDAO over the last quarter.” + +**Token Insights** + +- “What are the top 10 tokens by market cap on Ethereum right now?” +- “How many XYZ did I receive between May 1 and May 15?” + +**Historical Data Retrieval** + +- “Fetch the token price history of XYZ for the last six months.” +- “What was the average gas price on Ethereum during April?” + +**Portfolio Monitoring** + +- “List my wallet’s current token balances and their USD equivalents.” +- “Calculate profit/loss on XYZ since xyz date.” + +**Cross-Chain Comparison** + +- “Show me the 7-day trading volume of XYZ on Ethereum vs. Polygon.” +- “How many XYZ swaps occurred on Arbitrum yesterday?” + +To get started follow the [quickstart](/ai-suite/graph-assistant/quick-start/) and explore its capabilities. diff --git a/website/src/pages/ko/ai-suite/graph-assistant/introduction.mdx b/website/src/pages/ko/ai-suite/graph-assistant/introduction.mdx new file mode 100644 index 000000000000..65fdf0f96028 --- /dev/null +++ b/website/src/pages/ko/ai-suite/graph-assistant/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +[Graph Assistant](https://thegraph.com/graph-assistant) (Beta) gives instant, code-free access to blockchain data, transforming natural language into precise, AI-powered queries without the need to code. + +## Overview + +[Graph Assistant](https://thegraph.com/graph-assistant) is an advanced, [agentic](/en/ai-suite/graph-assistant/faq/) easy-to-use chat interface for querying blockchain data using natural language. Unlike a basic chatbot, Graph Assistant can understand your intent, build complex queries, and execute them automatically. This gives you rich, AI-powered insights from onchain data without writing any code. + +- **Automatically** interprets user intent, generates precise queries, executes them via The Graph's Subgraphs and Token API, and presents structured, AI-powered answers without requiring any code. +- **Removes** the technical complexity found in traditional dashboards or chatbots. It provides composable insights directly from indexed Subgraphs and Token datasets. + +## Core Features + +| Feature | Description | +| --- | --- | +| **Friendly Interface** | Conversational access to blockchain data via natural language. You simply ask questions, the Assistant fetches the answer, and renders results. | +| **Backed by Subgraphs** | Uses subgraphs to index protocol-specific data like transactions, events, and protocol metrics. | +| **Backed by Token API** | Uses Token API for token-level information like balances, transfers, and metadata. | +| **No Setup Required** | No need to configure data sources or write queries. | +| **Automatic Query Building** | The Assistant performs complex queries such as fetching historical token volumes, protocol analytics, or cross-chain data and handles filtering, pagination, and joins across Subgraphs automatically. | + +## Help Shape What's Next + +This is in **beta**, and community input is essential. If you have ideas, questions, or run into anything unexpected, we'd love to hear from you: + +- Join the community on [Discord](https://discord.com/invite/graphprotocol): Provide feedback and stay in the loop with other builders. You'll be able to join the `#graph-assistant` channel to share your experience directly. +- Interested in going deeper? Reach out to become a dedicated beta tester so your specific use case can be better supported. diff --git a/website/src/pages/ko/ai-suite/graph-assistant/quick-start.mdx b/website/src/pages/ko/ai-suite/graph-assistant/quick-start.mdx new file mode 100644 index 000000000000..13f8478b8d2b --- /dev/null +++ b/website/src/pages/ko/ai-suite/graph-assistant/quick-start.mdx @@ -0,0 +1,44 @@ +--- +title: Quick Start +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +This guide provides step-by-step instructions for getting started with Graph Assistant quickly. + +## Step-by Step + +### Step 1. Create an Account + +Go to: [Graph Assistant](https://thegraph.com/graph-assistant) + +- Click Sign Up (or Log In if you already have an account). +- Use your Google, GitHub, X, email or wallet credentials to log in. +- No additional setup is required. + +### Step 2. Open the Assistant Chat + +After logging in: + +- You'll see Graph Assistant's interface. +- At the bottom of the page, you will find a chat input bar. This is where you will interact with the Assistant. + +### Step 3: Ask Your First Question + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +In the input bar, type a natural-language query (everyday language). + +Example: + +```yaml +Show me the 24-hour trading volume of XYZ token on Ethereum +``` + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the AI interface. Do not share sensitive, personal, or private information. + +The Assistant will: + +- Digest your question +- Fetch onchain data using Subgraphs or the Token API +- Return a clean, formatted response with the data you need diff --git a/website/src/pages/ko/ai-suite/subgraph-mcp/_meta.js b/website/src/pages/ko/ai-suite/subgraph-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/ko/ai-suite/subgraph-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/ko/ai-suite/subgraph-mcp/claude.mdx b/website/src/pages/ko/ai-suite/subgraph-mcp/claude.mdx new file mode 100644 index 000000000000..ff3caa4e3e7f --- /dev/null +++ b/website/src/pages/ko/ai-suite/subgraph-mcp/claude.mdx @@ -0,0 +1,169 @@ +--- +title: Claude Desktop +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data via natural language conversations with Claude. + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` diff --git a/website/src/pages/ko/ai-suite/subgraph-mcp/cline.mdx b/website/src/pages/ko/ai-suite/subgraph-mcp/cline.mdx new file mode 100644 index 000000000000..eb8044bfe991 --- /dev/null +++ b/website/src/pages/ko/ai-suite/subgraph-mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "Subgraph Server Instructions" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/ko/ai-suite/subgraph-mcp/cursor.mdx b/website/src/pages/ko/ai-suite/subgraph-mcp/cursor.mdx new file mode 100644 index 000000000000..6291caf4b06b --- /dev/null +++ b/website/src/pages/ko/ai-suite/subgraph-mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/ko/ai-suite/subgraph-mcp/introduction.mdx b/website/src/pages/ko/ai-suite/subgraph-mcp/introduction.mdx new file mode 100644 index 000000000000..da1272cf9a36 --- /dev/null +++ b/website/src/pages/ko/ai-suite/subgraph-mcp/introduction.mdx @@ -0,0 +1,22 @@ +--- +title: Subgraph MCP Introduction +sidebarTitle: 'Introduction' +--- + +Subgraph MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +It presents The Graph's Subgraph data through a set of MCP tools that any MCP-compatible client can call. With these tools, clients can search for relevant Subgraphs, inspect GraphQL schemas, and run queries against specific deployments on The Graph Network all within a single, standardized interface. + +The server itself does not hold a language model. Instead, it translates incoming MCP requests into Subgraph queries and returns the structured results, allowing the client's LLM to transform a natural-language prompt into actionable blockchain data. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Subgraph ecosystem. + +## What You Can Do + +- Access GraphQL schemas for any Subgraph on The Graph Network +- Run GraphQL queries on any Subgraph deployment +- Discover top Subgraph deployments by keyword or contract address +- Retrieve 30-day query volumes for Subgraph deployments +- Ask questions about Subgraph data without writing GraphQL manually + +The Subgraph MCP server allows smooth integration with [Claude](/ai-suite/subgraph-mcp/claude/), [Cline](/ai-suite/subgraph-mcp/cline/), or [Cursor](/ai-suite/subgraph-mcp/cursor/), making blockchain data queries with The Graph Network a conversational experience. diff --git a/website/src/pages/ko/ai-suite/token-api-mcp/_meta.js b/website/src/pages/ko/ai-suite/token-api-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/ko/ai-suite/token-api-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/cs/token-api/mcp/claude.mdx b/website/src/pages/ko/ai-suite/token-api-mcp/claude.mdx similarity index 99% rename from website/src/pages/cs/token-api/mcp/claude.mdx rename to website/src/pages/ko/ai-suite/token-api-mcp/claude.mdx index 17f93a9bbb39..3e21f4d7e165 100644 --- a/website/src/pages/cs/token-api/mcp/claude.mdx +++ b/website/src/pages/ko/ai-suite/token-api-mcp/claude.mdx @@ -12,7 +12,7 @@ sidebarTitle: Claude Desktop ![Screenshot of Claude Desktop's settings panel showing the MCP server configuration option.](/img/claude-preview-token-api.png) -## Konfigurace +## Configuration Create or edit your `claude_desktop_config.json` file. diff --git a/website/src/pages/cs/token-api/mcp/cline.mdx b/website/src/pages/ko/ai-suite/token-api-mcp/cline.mdx similarity index 99% rename from website/src/pages/cs/token-api/mcp/cline.mdx rename to website/src/pages/ko/ai-suite/token-api-mcp/cline.mdx index 7d98c8650c2d..e885d21366cd 100644 --- a/website/src/pages/cs/token-api/mcp/cline.mdx +++ b/website/src/pages/ko/ai-suite/token-api-mcp/cline.mdx @@ -12,7 +12,7 @@ sidebarTitle: Cline ![Screenshot of Cline's MCP server configuration interface displaying the JSON settings file with mcp-pinax server details visible.](/img/cline-preview-token-api.png) -## Konfigurace +## Configuration Create or edit your `cline_mcp_settings.json` file. diff --git a/website/src/pages/cs/token-api/mcp/cursor.mdx b/website/src/pages/ko/ai-suite/token-api-mcp/cursor.mdx similarity index 99% rename from website/src/pages/cs/token-api/mcp/cursor.mdx rename to website/src/pages/ko/ai-suite/token-api-mcp/cursor.mdx index 35cd7d044430..68fe2fdb201c 100644 --- a/website/src/pages/cs/token-api/mcp/cursor.mdx +++ b/website/src/pages/ko/ai-suite/token-api-mcp/cursor.mdx @@ -12,7 +12,7 @@ sidebarTitle: Cursor ![Screenshot of Cursor's MCP configuration panel.](/img/cursor-preview-token-api.png) -## Konfigurace +## Configuration Create or edit your `~/.cursor/mcp.json` file. diff --git a/website/src/pages/ko/ai-suite/token-api-mcp/introduction.mdx b/website/src/pages/ko/ai-suite/token-api-mcp/introduction.mdx new file mode 100644 index 000000000000..b61ad0a1c485 --- /dev/null +++ b/website/src/pages/ko/ai-suite/token-api-mcp/introduction.mdx @@ -0,0 +1,23 @@ +--- +title: Token API MCP Introduction +sidebarTitle: 'Introduction' +--- + +Token API MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +This MCP server makes on-chain token data, including metadata, balances, transfers, and holder statistics, accessible through a set of MCP tools. Any compatible client can use these tools to fetch and analyze token information through a standardized interface. It connects to The Graph's hosted Token API database, enabling AI assistants to query real-time blockchain data using natural language requests that get translated into optimized SQL queries. + +The server itself does not host any language model. It simply converts MCP calls into data look-ups and returns structured results, letting the client's own LLM incorporate the results. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Token API data. + +## What You Can Do + +- Retrieve token metadata including name, symbol, decimals, total supply, and contract address +- Get token balances for any wallet address holding a supported ERC-20 token +- Fetch token transfer activity including sender, receiver, amount, and timestamp +- Identify top holders and analyze token distribution +- Ask natural language questions about token data without writing smart contract calls +- Access historical transfer data to analyze token movement over time + +The Token MCP server provides [Claude](/ai-suite/token-api-mcp/claude/), [Cline](/ai-suite/token-api-mcp/cline/), and [Cursor](/ai-suite/token-api-mcp/cursor/) with direct, conversational access to onchain token data. diff --git a/website/src/pages/ko/resources/_meta.js b/website/src/pages/ko/resources/_meta.js index aa8e2d0ec6a8..38c56cf56c43 100644 --- a/website/src/pages/ko/resources/_meta.js +++ b/website/src/pages/ko/resources/_meta.js @@ -7,5 +7,4 @@ export default { roles: titles.roles ?? '', 'migration-guides': titles['migration-guides'] ?? '', 'subgraph-studio-faq': '', - 'claude-mcp': '', } diff --git a/website/src/pages/ko/resources/claude-mcp.mdx b/website/src/pages/ko/resources/claude-mcp.mdx deleted file mode 100644 index 44ed075cffda..000000000000 --- a/website/src/pages/ko/resources/claude-mcp.mdx +++ /dev/null @@ -1,122 +0,0 @@ ---- -title: Claude MCP ---- - -This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. - -## What You Can Do - -With these integrations, you can: - -- **Token API**: Access token and wallet information across multiple blockchains -- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries - -## Prerequisites - -- [Node.js](https://nodejs.org/en/download/) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed -- API keys: - - Token API key from [The Graph Market](https://thegraph.market/) - - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -## Configuration Steps - -### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** - -Paths by operating system: - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -### 2. Add Configuration - -Replace the contents of the existing config file with: - -```json -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "ACCESS_TOKEN" - } - }, - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Keys - -Replace: - -- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) -- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -### 4. Save and Restart - -- Save the configuration file -- Restart Claude Desktop - -### 5. Add The Graph Resources in Claude - -After configuration: - -1. Start a new conversation in Claude Desktop -2. Click on the context menu (top right) -3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP - -> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. - -### 6. Run Queries - -Here are some example queries you can try after setting up the resources: - -### Subgraph Queries - -``` -What are the top pools in Uniswap? -``` - -``` -Who are the top Delegators of The Graph Protocol? -``` - -``` -Please make a bar chart for the number of active loans in Compound for the last 7 days -``` - -### Token API Queries - -``` -Show me the current price of ETH -``` - -``` -What are the top tokens by market cap on Ethereum? -``` - -``` -Analyze this wallet address: 0x... -``` - -## Troubleshooting - -If you encounter issues: - -1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal -2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file -3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs -4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop diff --git a/website/src/pages/ko/subgraphs/_meta.js b/website/src/pages/ko/subgraphs/_meta.js index 4365293ffc72..45841d5f3355 100644 --- a/website/src/pages/ko/subgraphs/_meta.js +++ b/website/src/pages/ko/subgraphs/_meta.js @@ -6,7 +6,6 @@ export default { querying: titles.querying ?? '', developing: titles.developing ?? '', billing: '', - mcp: titles.mcp ?? '', guides: titles.guides, 'best-practices': titles['best-practices'], 'fair-use-policy': '', diff --git a/website/src/pages/ko/subgraphs/mcp/_meta.js b/website/src/pages/ko/subgraphs/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/ko/subgraphs/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/ko/subgraphs/mcp/claude.mdx b/website/src/pages/ko/subgraphs/mcp/claude.mdx deleted file mode 100644 index 027b272cb942..000000000000 --- a/website/src/pages/ko/subgraphs/mcp/claude.mdx +++ /dev/null @@ -1,179 +0,0 @@ ---- -title: Claude Desktop ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. - -## What You Can Do - -The Subgraph MCP integration enables you to: - -- Access the GraphQL schema for any Subgraph on The Graph Network -- Execute GraphQL queries against any Subgraph deployment -- Find top Subgraph deployments for a given keyword or contract address -- Get 30-day query volume for Subgraph deployments -- Ask natural language questions about Subgraph data without writing GraphQL queries manually - -## Prerequisites - -- [Node.js](https://nodejs.org/en) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) - -## Installation Options - -### Option 1: Using npx (Recommended) - -#### Configuration Steps using npx - -#### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Settings** > **Developer** > **Edit Config** - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -#### 2. Add Configuration - -Paste the following settings into your config file: - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -#### 3. Add Your Gateway API Key - -Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). - -#### 4. Save and Restart - -Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. - -### Option 2: Building from Source - -#### Requirements - -- Rust (latest stable version recommended: 1.75+) - ```bash - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - ``` - Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). - -#### Installation Steps - -1. **Clone and Build the Repository** - - ```bash - git clone git@github.com:graphops/subgraph-mcp.git - cd subgraph-mcp - cargo build --release - ``` - -2. **Find the Command Path** - - After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - - Run `pwd` to get the full path - - Combine the output with `/target/release/subgraph-mcp` - -3. **Configure Claude Desktop** - - Open your `claude_desktop_config.json` file as described above and add: - - ```json - { - "mcpServers": { - "subgraph": { - "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", - "env": { - "GATEWAY_API_KEY": "your-api-key-here" - } - } - } - } - ``` - - Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. - -## Using The Graph Resource in Claude - -After configuring Claude Desktop: - -1. Restart Claude Desktop -2. Start a new conversation -3. Click on the context menu (top right) -4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context - -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. - -## Troubleshooting - -To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal -- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments -- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees - -## Key Identifier Types - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -``` -Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one -``` diff --git a/website/src/pages/ko/subgraphs/mcp/cline.mdx b/website/src/pages/ko/subgraphs/mcp/cline.mdx deleted file mode 100644 index 156221d9a127..000000000000 --- a/website/src/pages/ko/subgraphs/mcp/cline.mdx +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: Cline ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. - -## Prerequisites - -- [Cline](https://cline.bot/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `cline_mcp_settings.json` file. - -> **MCP Servers** > **Installed** > **Configure MCP Servers** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -## Using The Graph Resource in Cline - -After configuring Cline: - -1. Restart Cline -2. Start a new conversation -3. Enable the Subgraph MCP from the context menu -4. Add "Subgraph Server Instructions" as a resource to your chat context - -## Available Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/ko/subgraphs/mcp/cursor.mdx b/website/src/pages/ko/subgraphs/mcp/cursor.mdx deleted file mode 100644 index 298f43ece048..000000000000 --- a/website/src/pages/ko/subgraphs/mcp/cursor.mdx +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Cursor ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. - -## Prerequisites - -- [Cursor](https://www.cursor.com/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `~/.cursor/mcp.json` file. - -> **Cursor Settings** > **MCP** > **Add new global MCP Server** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -### 4. Restart Cursor - -Restart Cursor, and start a new chat. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/ko/substreams/_meta.js b/website/src/pages/ko/substreams/_meta.js index a8ee04618eae..658bb8c213c6 100644 --- a/website/src/pages/ko/substreams/_meta.js +++ b/website/src/pages/ko/substreams/_meta.js @@ -5,5 +5,4 @@ export default { introduction: '', developing: titles.developing ?? '', publishing: '', - sps: titles.sps ?? '', } diff --git a/website/src/pages/ko/token-api/_meta-titles.json b/website/src/pages/ko/token-api/_meta-titles.json index 7ed31e0af95d..3108ecd3ebfd 100644 --- a/website/src/pages/ko/token-api/_meta-titles.json +++ b/website/src/pages/ko/token-api/_meta-titles.json @@ -1,6 +1,7 @@ { "mcp": "MCP", "evm": "EVM Endpoints", + "svm": "SVM Endpoints", "monitoring": "Monitoring Endpoints", "faq": "FAQ" } diff --git a/website/src/pages/ko/token-api/_meta.js b/website/src/pages/ko/token-api/_meta.js index f67576d7f612..fb7f7334ea0c 100644 --- a/website/src/pages/ko/token-api/_meta.js +++ b/website/src/pages/ko/token-api/_meta.js @@ -2,8 +2,8 @@ import titles from './_meta-titles.json' export default { 'quick-start': '', - mcp: titles.mcp ?? '', evm: titles.evm ?? '', + svm: titles.svm ?? '', monitoring: titles.monitoring ?? '', faq: '', } diff --git a/website/src/pages/ko/token-api/mcp/_meta.js b/website/src/pages/ko/token-api/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/ko/token-api/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/ko/token-api/svm/_meta.js b/website/src/pages/ko/token-api/svm/_meta.js new file mode 100644 index 000000000000..1a48b82fcbf1 --- /dev/null +++ b/website/src/pages/ko/token-api/svm/_meta.js @@ -0,0 +1,5 @@ +export default { + 'get-balances-svm': '', + 'get-transfers-svm': '', + 'get-swaps-svm': '', +} diff --git a/website/src/pages/ko/token-api/svm/get-balances-svm.mdx b/website/src/pages/ko/token-api/svm/get-balances-svm.mdx new file mode 100644 index 000000000000..c2946c190bf9 --- /dev/null +++ b/website/src/pages/ko/token-api/svm/get-balances-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Balances +template: + type: openApi + apiId: tokenApi + operationId: getBalancesSvm +--- + +Provides Solana tokens balances by token account address. diff --git a/website/src/pages/ko/token-api/svm/get-swaps-svm.mdx b/website/src/pages/ko/token-api/svm/get-swaps-svm.mdx new file mode 100644 index 000000000000..95282a38ac9f --- /dev/null +++ b/website/src/pages/ko/token-api/svm/get-swaps-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsSvm +--- + +Provides Raydium swap events. diff --git a/website/src/pages/ko/token-api/svm/get-transfers-svm.mdx b/website/src/pages/ko/token-api/svm/get-transfers-svm.mdx new file mode 100644 index 000000000000..5335cdddf418 --- /dev/null +++ b/website/src/pages/ko/token-api/svm/get-transfers-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersSvm +--- + +Provides SVM transfer events. diff --git a/website/src/pages/mr/ai-suite/_meta-titles.json b/website/src/pages/mr/ai-suite/_meta-titles.json new file mode 100644 index 000000000000..5eb482a7092b --- /dev/null +++ b/website/src/pages/mr/ai-suite/_meta-titles.json @@ -0,0 +1,6 @@ +{ + "graph-assistant": "Graph Assistant", + "ai-introduction": "The Graph's AI", + "subgraph-mcp": "Subgraph MCP", + "token-api-mcp": "Token API MCP" +} diff --git a/website/src/pages/mr/ai-suite/_meta.js b/website/src/pages/mr/ai-suite/_meta.js new file mode 100644 index 000000000000..c9e51dfd35fb --- /dev/null +++ b/website/src/pages/mr/ai-suite/_meta.js @@ -0,0 +1,8 @@ +import titles from './_meta-titles.json' + +export default { + 'ai-introduction': titles['ai-introduction'], + 'graph-assistant': titles['graph-assistant'], + 'subgraph-mcp': titles['subgraph-mcp'], + 'token-api-mcp': titles['token-api-mcp'], +} diff --git a/website/src/pages/mr/ai-suite/ai-introduction.mdx b/website/src/pages/mr/ai-suite/ai-introduction.mdx new file mode 100644 index 000000000000..d25cc9f77358 --- /dev/null +++ b/website/src/pages/mr/ai-suite/ai-introduction.mdx @@ -0,0 +1,58 @@ +--- +title: The Graph's AI +--- + +Build with speed and scale faster with The Graph's AI. + +## Using AI on The Graph + +Instead of relying on static datasets or centralized APIs, you can now access live blockchain data through our **agentic** app, [Graph Assistant](/ai-suite/graph-assistant/introduction/), and use our AI-native tooling, [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/), and [Token API MCP](/ai-suite/token-api-mcp/introduction/). + +### Why Use Onchain Data with AI? + +Using onchain data with AI unlocks powerful new ways to interact with and understand blockchain ecosystems. + +- **AI for Non-Technical End Users**: AI can turn complex onchain data into accessible insights. Assistants powered by AI enable you to explore and analyze blockchain data without coding. +- **AI for Developers**: You can use AI to interact directly with The Graph's data through your agents or build AI-powered applications on top of it. This streamlines development and opens up more intuitive, dynamic use cases. + +## AI for Non-Technical/End Users + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) is a powerful **agentic** application that empowers users to easily interact with blockchain data. Ask questions in simple, natural language and get rich, AI powered insights. Both technical developers and non-technical product teams can move faster, make smarter decisions, and gain a clearer understanding than ever before. + +### Benefits of Using Graph Assistant + +- **Natural language Input**: You don't need to write complex queries or sift through dashboards. Simply ask your question in plain English and get clear, structured results. +- **Multi-source support**: Works across multiple Subgraphs and Token API. The Assistant automatically determines which data source to use, so you don't have to switch tools or manage endpoints. +- **Schema-free access**: You don't need to understand the schema. You can refer to tokens, protocols, dates, or addresses using natural language. The Assistant takes care of the rest. + +### Conversational Querying with Graph Assistant + +**Example queries:** + +- "List the top-5 swaps by USD value in the last 24 hours." +- "Give me the daily volume on Uniswap." +- "List the 20 most recently registered .eth names." + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) will eventually be a one-stop shop for interacting with The Graph. Right now, it's an agentic AI app that uses state-of-the-art AI techniques, LLMs, and MCPs to understand and answer your questions about [Subgraphs](/subgraphs/developing/subgraphs/) and [Token API](/token-api/quick-start/) data. + +## AI for Developers + +### Enable Natural Language Access to Onchain Data + +[Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) servers connect to Claude, Cline, and Cursor. They enable models to understand, query, and interact with structured onchain data using natural language. MCPs remove the need to write low-level queries or interact with APIs directly. + +### Subgraph MCP + +The [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/) server connects models to Subgraphs on The Graph Network. It allows language models to explore Subgraph schemas, execute GraphQL queries, find relevant Subgraphs by keyword or contract, and surface usage metrics using natural language. + +### Token API MCP + +The [Token API MCP](/ai-suite/token-api-mcp/introduction/) MCP server enables models to access onchain token data. It supports querying token metadata, wallet balances, transfer history, and top token holders through simple prompts. + +#### Benefits of Using Subgraph and Token API MCPs + +- Query Subgraphs and token data using natural language +- Access GraphQL schemas and token metadata without manual queries +- Find Subgraphs by keyword or contract and check 30-day usage +- Retrieve real-time data from The Graph and onchain token sources +- Get wallet balances, transfer history, and top token holders diff --git a/website/src/pages/mr/ai-suite/graph-assistant/_meta.js b/website/src/pages/mr/ai-suite/graph-assistant/_meta.js new file mode 100644 index 000000000000..74da5e0686a7 --- /dev/null +++ b/website/src/pages/mr/ai-suite/graph-assistant/_meta.js @@ -0,0 +1,6 @@ +export default { + 'quick-start': '', + introduction: '', + 'how-to-guide': '', + faq: '', +} diff --git a/website/src/pages/mr/ai-suite/graph-assistant/faq.mdx b/website/src/pages/mr/ai-suite/graph-assistant/faq.mdx new file mode 100644 index 000000000000..8addf9935524 --- /dev/null +++ b/website/src/pages/mr/ai-suite/graph-assistant/faq.mdx @@ -0,0 +1,26 @@ +--- +title: Graph Assistant FAQ +sidebarTitle: 'FAQ' +--- + +This page summarizes some of the most common questions for developers using Graph Assistant. + +1. What is The Graph Assistant? + +The Graph Assistant is an AI-powered chat interface that lets you query blockchain data in plain English. Under the hood, it translates your questions into GraphQL calls against Subgraphs and the Token API, then returns results, no coding required. + +2. What is an agentic application? + +An agentic application combines AI-driven reasoning with external data sources or APIs to take autonomous actions on your behalf. In this case, Graph Assistant acts as an “agent” that interprets your natural-language prompts, builds and dispatches GraphQL queries, and formats the results so that you don't need to write or manage queries yourself. + +3. Which networks and data does Graph Assistant support? + +The Assistant has access to Subgraphs across multiple chains. If a Subgraph is published to The Graph Network and is being indexed, the Assistant can automatically route queries to it. The Assistant also has access to the Token API on Ethereum Mainnet, BSC, Unichain, Arbitrum-One, Optimism, and Polygon. + +4. Is there a usage limit or quota? + +Yes, 10 questions per hour. + +5. What if the Assistant can't interpret my question? + +When the Assistant fails to parse your intent (for example, ambiguous token name, missing context, or an unsupported request), it will prompt you for clarification. For instance, it might ask, “Did you mean XYZ on Ethereum or XYZ on Arbitrum?” or “Please specify a date range for this query.” If you continue to see parsing errors, check that you're using correct token symbols or specifying networks and time frames clearly. diff --git a/website/src/pages/mr/ai-suite/graph-assistant/how-to-guide.mdx b/website/src/pages/mr/ai-suite/graph-assistant/how-to-guide.mdx new file mode 100644 index 000000000000..463130894ad8 --- /dev/null +++ b/website/src/pages/mr/ai-suite/graph-assistant/how-to-guide.mdx @@ -0,0 +1,56 @@ +--- +title: How To Use The Graph Assistant +sidebarTitle: 'How-to Guide' +--- + +## Overview + +You type a natural language question into the chat interface, such as: + +```yaml +'On Uniswap, return the top-10 pools by total value locked in USD.' +``` + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the underlying agents. Do not share sensitive, personal, or private information. + +### Behind the Scenes + +The Assistant: + +1. Interprets your intent +2. Maps it to the correct Subgraphs or Token API endpoint +3. Executes optimized queries +4. Returns clean, structured results + +You don't need to write queries or understand a Subgraph's schema, you simply ask. + +### Example Use Cases + +**Protocol Analytics** + +- “Compare daily active users on Aave vs. Compound in May 2025.” +- “Show me the total value locked (TVL) for XYZDAO over the last quarter.” + +**Token Insights** + +- “What are the top 10 tokens by market cap on Ethereum right now?” +- “How many XYZ did I receive between May 1 and May 15?” + +**Historical Data Retrieval** + +- “Fetch the token price history of XYZ for the last six months.” +- “What was the average gas price on Ethereum during April?” + +**Portfolio Monitoring** + +- “List my wallet’s current token balances and their USD equivalents.” +- “Calculate profit/loss on XYZ since xyz date.” + +**Cross-Chain Comparison** + +- “Show me the 7-day trading volume of XYZ on Ethereum vs. Polygon.” +- “How many XYZ swaps occurred on Arbitrum yesterday?” + +To get started follow the [quickstart](/ai-suite/graph-assistant/quick-start/) and explore its capabilities. diff --git a/website/src/pages/mr/ai-suite/graph-assistant/introduction.mdx b/website/src/pages/mr/ai-suite/graph-assistant/introduction.mdx new file mode 100644 index 000000000000..65fdf0f96028 --- /dev/null +++ b/website/src/pages/mr/ai-suite/graph-assistant/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +[Graph Assistant](https://thegraph.com/graph-assistant) (Beta) gives instant, code-free access to blockchain data, transforming natural language into precise, AI-powered queries without the need to code. + +## Overview + +[Graph Assistant](https://thegraph.com/graph-assistant) is an advanced, [agentic](/en/ai-suite/graph-assistant/faq/) easy-to-use chat interface for querying blockchain data using natural language. Unlike a basic chatbot, Graph Assistant can understand your intent, build complex queries, and execute them automatically. This gives you rich, AI-powered insights from onchain data without writing any code. + +- **Automatically** interprets user intent, generates precise queries, executes them via The Graph's Subgraphs and Token API, and presents structured, AI-powered answers without requiring any code. +- **Removes** the technical complexity found in traditional dashboards or chatbots. It provides composable insights directly from indexed Subgraphs and Token datasets. + +## Core Features + +| Feature | Description | +| --- | --- | +| **Friendly Interface** | Conversational access to blockchain data via natural language. You simply ask questions, the Assistant fetches the answer, and renders results. | +| **Backed by Subgraphs** | Uses subgraphs to index protocol-specific data like transactions, events, and protocol metrics. | +| **Backed by Token API** | Uses Token API for token-level information like balances, transfers, and metadata. | +| **No Setup Required** | No need to configure data sources or write queries. | +| **Automatic Query Building** | The Assistant performs complex queries such as fetching historical token volumes, protocol analytics, or cross-chain data and handles filtering, pagination, and joins across Subgraphs automatically. | + +## Help Shape What's Next + +This is in **beta**, and community input is essential. If you have ideas, questions, or run into anything unexpected, we'd love to hear from you: + +- Join the community on [Discord](https://discord.com/invite/graphprotocol): Provide feedback and stay in the loop with other builders. You'll be able to join the `#graph-assistant` channel to share your experience directly. +- Interested in going deeper? Reach out to become a dedicated beta tester so your specific use case can be better supported. diff --git a/website/src/pages/mr/ai-suite/graph-assistant/quick-start.mdx b/website/src/pages/mr/ai-suite/graph-assistant/quick-start.mdx new file mode 100644 index 000000000000..13f8478b8d2b --- /dev/null +++ b/website/src/pages/mr/ai-suite/graph-assistant/quick-start.mdx @@ -0,0 +1,44 @@ +--- +title: Quick Start +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +This guide provides step-by-step instructions for getting started with Graph Assistant quickly. + +## Step-by Step + +### Step 1. Create an Account + +Go to: [Graph Assistant](https://thegraph.com/graph-assistant) + +- Click Sign Up (or Log In if you already have an account). +- Use your Google, GitHub, X, email or wallet credentials to log in. +- No additional setup is required. + +### Step 2. Open the Assistant Chat + +After logging in: + +- You'll see Graph Assistant's interface. +- At the bottom of the page, you will find a chat input bar. This is where you will interact with the Assistant. + +### Step 3: Ask Your First Question + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +In the input bar, type a natural-language query (everyday language). + +Example: + +```yaml +Show me the 24-hour trading volume of XYZ token on Ethereum +``` + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the AI interface. Do not share sensitive, personal, or private information. + +The Assistant will: + +- Digest your question +- Fetch onchain data using Subgraphs or the Token API +- Return a clean, formatted response with the data you need diff --git a/website/src/pages/mr/ai-suite/subgraph-mcp/_meta.js b/website/src/pages/mr/ai-suite/subgraph-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/mr/ai-suite/subgraph-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/mr/ai-suite/subgraph-mcp/claude.mdx b/website/src/pages/mr/ai-suite/subgraph-mcp/claude.mdx new file mode 100644 index 000000000000..ff3caa4e3e7f --- /dev/null +++ b/website/src/pages/mr/ai-suite/subgraph-mcp/claude.mdx @@ -0,0 +1,169 @@ +--- +title: Claude Desktop +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data via natural language conversations with Claude. + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` diff --git a/website/src/pages/mr/ai-suite/subgraph-mcp/cline.mdx b/website/src/pages/mr/ai-suite/subgraph-mcp/cline.mdx new file mode 100644 index 000000000000..eb8044bfe991 --- /dev/null +++ b/website/src/pages/mr/ai-suite/subgraph-mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "Subgraph Server Instructions" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/mr/ai-suite/subgraph-mcp/cursor.mdx b/website/src/pages/mr/ai-suite/subgraph-mcp/cursor.mdx new file mode 100644 index 000000000000..6291caf4b06b --- /dev/null +++ b/website/src/pages/mr/ai-suite/subgraph-mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/mr/ai-suite/subgraph-mcp/introduction.mdx b/website/src/pages/mr/ai-suite/subgraph-mcp/introduction.mdx new file mode 100644 index 000000000000..da1272cf9a36 --- /dev/null +++ b/website/src/pages/mr/ai-suite/subgraph-mcp/introduction.mdx @@ -0,0 +1,22 @@ +--- +title: Subgraph MCP Introduction +sidebarTitle: 'Introduction' +--- + +Subgraph MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +It presents The Graph's Subgraph data through a set of MCP tools that any MCP-compatible client can call. With these tools, clients can search for relevant Subgraphs, inspect GraphQL schemas, and run queries against specific deployments on The Graph Network all within a single, standardized interface. + +The server itself does not hold a language model. Instead, it translates incoming MCP requests into Subgraph queries and returns the structured results, allowing the client's LLM to transform a natural-language prompt into actionable blockchain data. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Subgraph ecosystem. + +## What You Can Do + +- Access GraphQL schemas for any Subgraph on The Graph Network +- Run GraphQL queries on any Subgraph deployment +- Discover top Subgraph deployments by keyword or contract address +- Retrieve 30-day query volumes for Subgraph deployments +- Ask questions about Subgraph data without writing GraphQL manually + +The Subgraph MCP server allows smooth integration with [Claude](/ai-suite/subgraph-mcp/claude/), [Cline](/ai-suite/subgraph-mcp/cline/), or [Cursor](/ai-suite/subgraph-mcp/cursor/), making blockchain data queries with The Graph Network a conversational experience. diff --git a/website/src/pages/mr/ai-suite/token-api-mcp/_meta.js b/website/src/pages/mr/ai-suite/token-api-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/mr/ai-suite/token-api-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/sv/token-api/mcp/claude.mdx b/website/src/pages/mr/ai-suite/token-api-mcp/claude.mdx similarity index 99% rename from website/src/pages/sv/token-api/mcp/claude.mdx rename to website/src/pages/mr/ai-suite/token-api-mcp/claude.mdx index 47a477b1511e..3e21f4d7e165 100644 --- a/website/src/pages/sv/token-api/mcp/claude.mdx +++ b/website/src/pages/mr/ai-suite/token-api-mcp/claude.mdx @@ -12,7 +12,7 @@ sidebarTitle: Claude Desktop ![Screenshot of Claude Desktop's settings panel showing the MCP server configuration option.](/img/claude-preview-token-api.png) -## Konfiguration +## Configuration Create or edit your `claude_desktop_config.json` file. diff --git a/website/src/pages/sv/token-api/mcp/cline.mdx b/website/src/pages/mr/ai-suite/token-api-mcp/cline.mdx similarity index 99% rename from website/src/pages/sv/token-api/mcp/cline.mdx rename to website/src/pages/mr/ai-suite/token-api-mcp/cline.mdx index dbd4cf5f7b90..e885d21366cd 100644 --- a/website/src/pages/sv/token-api/mcp/cline.mdx +++ b/website/src/pages/mr/ai-suite/token-api-mcp/cline.mdx @@ -12,7 +12,7 @@ sidebarTitle: Cline ![Screenshot of Cline's MCP server configuration interface displaying the JSON settings file with mcp-pinax server details visible.](/img/cline-preview-token-api.png) -## Konfiguration +## Configuration Create or edit your `cline_mcp_settings.json` file. diff --git a/website/src/pages/sv/token-api/mcp/cursor.mdx b/website/src/pages/mr/ai-suite/token-api-mcp/cursor.mdx similarity index 99% rename from website/src/pages/sv/token-api/mcp/cursor.mdx rename to website/src/pages/mr/ai-suite/token-api-mcp/cursor.mdx index 01e75bf7e400..68fe2fdb201c 100644 --- a/website/src/pages/sv/token-api/mcp/cursor.mdx +++ b/website/src/pages/mr/ai-suite/token-api-mcp/cursor.mdx @@ -12,7 +12,7 @@ sidebarTitle: Cursor ![Screenshot of Cursor's MCP configuration panel.](/img/cursor-preview-token-api.png) -## Konfiguration +## Configuration Create or edit your `~/.cursor/mcp.json` file. diff --git a/website/src/pages/mr/ai-suite/token-api-mcp/introduction.mdx b/website/src/pages/mr/ai-suite/token-api-mcp/introduction.mdx new file mode 100644 index 000000000000..b61ad0a1c485 --- /dev/null +++ b/website/src/pages/mr/ai-suite/token-api-mcp/introduction.mdx @@ -0,0 +1,23 @@ +--- +title: Token API MCP Introduction +sidebarTitle: 'Introduction' +--- + +Token API MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +This MCP server makes on-chain token data, including metadata, balances, transfers, and holder statistics, accessible through a set of MCP tools. Any compatible client can use these tools to fetch and analyze token information through a standardized interface. It connects to The Graph's hosted Token API database, enabling AI assistants to query real-time blockchain data using natural language requests that get translated into optimized SQL queries. + +The server itself does not host any language model. It simply converts MCP calls into data look-ups and returns structured results, letting the client's own LLM incorporate the results. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Token API data. + +## What You Can Do + +- Retrieve token metadata including name, symbol, decimals, total supply, and contract address +- Get token balances for any wallet address holding a supported ERC-20 token +- Fetch token transfer activity including sender, receiver, amount, and timestamp +- Identify top holders and analyze token distribution +- Ask natural language questions about token data without writing smart contract calls +- Access historical transfer data to analyze token movement over time + +The Token MCP server provides [Claude](/ai-suite/token-api-mcp/claude/), [Cline](/ai-suite/token-api-mcp/cline/), and [Cursor](/ai-suite/token-api-mcp/cursor/) with direct, conversational access to onchain token data. diff --git a/website/src/pages/mr/resources/_meta.js b/website/src/pages/mr/resources/_meta.js index aa8e2d0ec6a8..38c56cf56c43 100644 --- a/website/src/pages/mr/resources/_meta.js +++ b/website/src/pages/mr/resources/_meta.js @@ -7,5 +7,4 @@ export default { roles: titles.roles ?? '', 'migration-guides': titles['migration-guides'] ?? '', 'subgraph-studio-faq': '', - 'claude-mcp': '', } diff --git a/website/src/pages/mr/resources/claude-mcp.mdx b/website/src/pages/mr/resources/claude-mcp.mdx deleted file mode 100644 index 44ed075cffda..000000000000 --- a/website/src/pages/mr/resources/claude-mcp.mdx +++ /dev/null @@ -1,122 +0,0 @@ ---- -title: Claude MCP ---- - -This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. - -## What You Can Do - -With these integrations, you can: - -- **Token API**: Access token and wallet information across multiple blockchains -- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries - -## Prerequisites - -- [Node.js](https://nodejs.org/en/download/) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed -- API keys: - - Token API key from [The Graph Market](https://thegraph.market/) - - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -## Configuration Steps - -### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** - -Paths by operating system: - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -### 2. Add Configuration - -Replace the contents of the existing config file with: - -```json -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "ACCESS_TOKEN" - } - }, - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Keys - -Replace: - -- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) -- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -### 4. Save and Restart - -- Save the configuration file -- Restart Claude Desktop - -### 5. Add The Graph Resources in Claude - -After configuration: - -1. Start a new conversation in Claude Desktop -2. Click on the context menu (top right) -3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP - -> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. - -### 6. Run Queries - -Here are some example queries you can try after setting up the resources: - -### Subgraph Queries - -``` -What are the top pools in Uniswap? -``` - -``` -Who are the top Delegators of The Graph Protocol? -``` - -``` -Please make a bar chart for the number of active loans in Compound for the last 7 days -``` - -### Token API Queries - -``` -Show me the current price of ETH -``` - -``` -What are the top tokens by market cap on Ethereum? -``` - -``` -Analyze this wallet address: 0x... -``` - -## Troubleshooting - -If you encounter issues: - -1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal -2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file -3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs -4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop diff --git a/website/src/pages/mr/subgraphs/_meta.js b/website/src/pages/mr/subgraphs/_meta.js index 4365293ffc72..45841d5f3355 100644 --- a/website/src/pages/mr/subgraphs/_meta.js +++ b/website/src/pages/mr/subgraphs/_meta.js @@ -6,7 +6,6 @@ export default { querying: titles.querying ?? '', developing: titles.developing ?? '', billing: '', - mcp: titles.mcp ?? '', guides: titles.guides, 'best-practices': titles['best-practices'], 'fair-use-policy': '', diff --git a/website/src/pages/mr/subgraphs/mcp/_meta.js b/website/src/pages/mr/subgraphs/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/mr/subgraphs/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/mr/subgraphs/mcp/claude.mdx b/website/src/pages/mr/subgraphs/mcp/claude.mdx deleted file mode 100644 index 027b272cb942..000000000000 --- a/website/src/pages/mr/subgraphs/mcp/claude.mdx +++ /dev/null @@ -1,179 +0,0 @@ ---- -title: Claude Desktop ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. - -## What You Can Do - -The Subgraph MCP integration enables you to: - -- Access the GraphQL schema for any Subgraph on The Graph Network -- Execute GraphQL queries against any Subgraph deployment -- Find top Subgraph deployments for a given keyword or contract address -- Get 30-day query volume for Subgraph deployments -- Ask natural language questions about Subgraph data without writing GraphQL queries manually - -## Prerequisites - -- [Node.js](https://nodejs.org/en) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) - -## Installation Options - -### Option 1: Using npx (Recommended) - -#### Configuration Steps using npx - -#### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Settings** > **Developer** > **Edit Config** - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -#### 2. Add Configuration - -Paste the following settings into your config file: - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -#### 3. Add Your Gateway API Key - -Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). - -#### 4. Save and Restart - -Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. - -### Option 2: Building from Source - -#### Requirements - -- Rust (latest stable version recommended: 1.75+) - ```bash - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - ``` - Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). - -#### Installation Steps - -1. **Clone and Build the Repository** - - ```bash - git clone git@github.com:graphops/subgraph-mcp.git - cd subgraph-mcp - cargo build --release - ``` - -2. **Find the Command Path** - - After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - - Run `pwd` to get the full path - - Combine the output with `/target/release/subgraph-mcp` - -3. **Configure Claude Desktop** - - Open your `claude_desktop_config.json` file as described above and add: - - ```json - { - "mcpServers": { - "subgraph": { - "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", - "env": { - "GATEWAY_API_KEY": "your-api-key-here" - } - } - } - } - ``` - - Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. - -## Using The Graph Resource in Claude - -After configuring Claude Desktop: - -1. Restart Claude Desktop -2. Start a new conversation -3. Click on the context menu (top right) -4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context - -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. - -## Troubleshooting - -To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal -- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments -- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees - -## Key Identifier Types - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -``` -Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one -``` diff --git a/website/src/pages/mr/subgraphs/mcp/cline.mdx b/website/src/pages/mr/subgraphs/mcp/cline.mdx deleted file mode 100644 index 156221d9a127..000000000000 --- a/website/src/pages/mr/subgraphs/mcp/cline.mdx +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: Cline ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. - -## Prerequisites - -- [Cline](https://cline.bot/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `cline_mcp_settings.json` file. - -> **MCP Servers** > **Installed** > **Configure MCP Servers** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -## Using The Graph Resource in Cline - -After configuring Cline: - -1. Restart Cline -2. Start a new conversation -3. Enable the Subgraph MCP from the context menu -4. Add "Subgraph Server Instructions" as a resource to your chat context - -## Available Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/mr/subgraphs/mcp/cursor.mdx b/website/src/pages/mr/subgraphs/mcp/cursor.mdx deleted file mode 100644 index 298f43ece048..000000000000 --- a/website/src/pages/mr/subgraphs/mcp/cursor.mdx +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Cursor ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. - -## Prerequisites - -- [Cursor](https://www.cursor.com/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `~/.cursor/mcp.json` file. - -> **Cursor Settings** > **MCP** > **Add new global MCP Server** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -### 4. Restart Cursor - -Restart Cursor, and start a new chat. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/mr/substreams/_meta.js b/website/src/pages/mr/substreams/_meta.js index a8ee04618eae..658bb8c213c6 100644 --- a/website/src/pages/mr/substreams/_meta.js +++ b/website/src/pages/mr/substreams/_meta.js @@ -5,5 +5,4 @@ export default { introduction: '', developing: titles.developing ?? '', publishing: '', - sps: titles.sps ?? '', } diff --git a/website/src/pages/mr/token-api/_meta-titles.json b/website/src/pages/mr/token-api/_meta-titles.json index 7ed31e0af95d..3108ecd3ebfd 100644 --- a/website/src/pages/mr/token-api/_meta-titles.json +++ b/website/src/pages/mr/token-api/_meta-titles.json @@ -1,6 +1,7 @@ { "mcp": "MCP", "evm": "EVM Endpoints", + "svm": "SVM Endpoints", "monitoring": "Monitoring Endpoints", "faq": "FAQ" } diff --git a/website/src/pages/mr/token-api/_meta.js b/website/src/pages/mr/token-api/_meta.js index f67576d7f612..fb7f7334ea0c 100644 --- a/website/src/pages/mr/token-api/_meta.js +++ b/website/src/pages/mr/token-api/_meta.js @@ -2,8 +2,8 @@ import titles from './_meta-titles.json' export default { 'quick-start': '', - mcp: titles.mcp ?? '', evm: titles.evm ?? '', + svm: titles.svm ?? '', monitoring: titles.monitoring ?? '', faq: '', } diff --git a/website/src/pages/mr/token-api/mcp/_meta.js b/website/src/pages/mr/token-api/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/mr/token-api/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/mr/token-api/mcp/claude.mdx b/website/src/pages/mr/token-api/mcp/claude.mdx deleted file mode 100644 index fc064a528787..000000000000 --- a/website/src/pages/mr/token-api/mcp/claude.mdx +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: Using Claude Desktop to Access the Token API via MCP -sidebarTitle: Claude Desktop ---- - -## Prerequisites - -- [Claude Desktop](https://claude.ai/download) installed. -- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. -- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. - -![Screenshot of Claude Desktop's settings panel showing the MCP server configuration option.](/img/claude-preview-token-api.png) - -## कॉन्फिगरेशन - -Create or edit your `claude_desktop_config.json` file. - -> **Settings** > **Developer** > **Edit Config** - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -```json label="claude_desktop_config.json" -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -## Troubleshooting - -To enable logs for the MCP, use the `--verbose true` option. - -### ENOENT - -![Error dialog in Claude Desktop showing 'ENOENT' system error, indicating the npx/bunx command wasn't found in the system path.](/img/claude-ENOENT.png) - -Try to use the full path of the command instead: - -- Run `which npx` or `which bunx` to get the path of the command. -- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). - -### Server disconnected - -![Connection error notification in Claude Desktop displaying 'Server disconnected' message.](/img/claude-server-disconnect.png) - -Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. - -> You can always have a look at the full logs under `Claude/logs/mcp.log` and `Claude/logs/mcp-server-pinax.log` for more details. diff --git a/website/src/pages/mr/token-api/mcp/cline.mdx b/website/src/pages/mr/token-api/mcp/cline.mdx deleted file mode 100644 index 730efa8a99de..000000000000 --- a/website/src/pages/mr/token-api/mcp/cline.mdx +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Using Cline to Access the Token API via MCP -sidebarTitle: Cline ---- - -## Prerequisites - -- [Cline](https://cline.bot/) installed. -- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. -- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. - -![Screenshot of Cline's MCP server configuration interface displaying the JSON settings file with mcp-pinax server details visible.](/img/cline-preview-token-api.png) - -## कॉन्फिगरेशन - -Create or edit your `cline_mcp_settings.json` file. - -> **MCP Servers** > **Installed** > **Configure MCP Servers** - -```json label="cline_mcp_settings.json" -{ - "mcpServers": { - "mcp-pinax": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -## Troubleshooting - -To enable logs for the MCP, use the `--verbose true` option. - -### ENOENT - -![Cline error dialog showing 'ENOENT' system alert.](/img/cline-error.png) - -Try to use the full path of the command instead: - -- Run `which npx` or `which bunx` to get the path of the command. -- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). - -### Server disconnected - -![Cline connection error notification displaying server disconnection warning.](/img/cline-missing-variables.png) - -Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/mr/token-api/mcp/cursor.mdx b/website/src/pages/mr/token-api/mcp/cursor.mdx deleted file mode 100644 index 2b9b400d3e13..000000000000 --- a/website/src/pages/mr/token-api/mcp/cursor.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Using Cursor to Access the Token API via MCP -sidebarTitle: Cursor ---- - -## Prerequisites - -- [Cursor](https://www.cursor.com/) installed. -- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. -- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. - -![Screenshot of Cursor's MCP configuration panel.](/img/cursor-preview-token-api.png) - -## कॉन्फिगरेशन - -Create or edit your `~/.cursor/mcp.json` file. - -> **Cursor Settings** > **MCP** > **Add new global MCP Server** - -```json label="mcp.json" -{ - "mcpServers": { - "mcp-pinax": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -## Troubleshooting - -![Cursor IDE error notification that reads, "Failed to create client"](/img/cursor-error.png) - -To enable logs for the MCP, use the `--verbose true` option. - -### ENOENT - -Try to use the full path of the command instead: - -- Run `which npx` or `which bunx` to get the path of the command. -- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). - -### Server disconnected - -Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/mr/token-api/svm/_meta.js b/website/src/pages/mr/token-api/svm/_meta.js new file mode 100644 index 000000000000..1a48b82fcbf1 --- /dev/null +++ b/website/src/pages/mr/token-api/svm/_meta.js @@ -0,0 +1,5 @@ +export default { + 'get-balances-svm': '', + 'get-transfers-svm': '', + 'get-swaps-svm': '', +} diff --git a/website/src/pages/mr/token-api/svm/get-balances-svm.mdx b/website/src/pages/mr/token-api/svm/get-balances-svm.mdx new file mode 100644 index 000000000000..c2946c190bf9 --- /dev/null +++ b/website/src/pages/mr/token-api/svm/get-balances-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Balances +template: + type: openApi + apiId: tokenApi + operationId: getBalancesSvm +--- + +Provides Solana tokens balances by token account address. diff --git a/website/src/pages/mr/token-api/svm/get-swaps-svm.mdx b/website/src/pages/mr/token-api/svm/get-swaps-svm.mdx new file mode 100644 index 000000000000..95282a38ac9f --- /dev/null +++ b/website/src/pages/mr/token-api/svm/get-swaps-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsSvm +--- + +Provides Raydium swap events. diff --git a/website/src/pages/mr/token-api/svm/get-transfers-svm.mdx b/website/src/pages/mr/token-api/svm/get-transfers-svm.mdx new file mode 100644 index 000000000000..5335cdddf418 --- /dev/null +++ b/website/src/pages/mr/token-api/svm/get-transfers-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersSvm +--- + +Provides SVM transfer events. diff --git a/website/src/pages/nl/ai-suite/_meta-titles.json b/website/src/pages/nl/ai-suite/_meta-titles.json new file mode 100644 index 000000000000..5eb482a7092b --- /dev/null +++ b/website/src/pages/nl/ai-suite/_meta-titles.json @@ -0,0 +1,6 @@ +{ + "graph-assistant": "Graph Assistant", + "ai-introduction": "The Graph's AI", + "subgraph-mcp": "Subgraph MCP", + "token-api-mcp": "Token API MCP" +} diff --git a/website/src/pages/nl/ai-suite/_meta.js b/website/src/pages/nl/ai-suite/_meta.js new file mode 100644 index 000000000000..c9e51dfd35fb --- /dev/null +++ b/website/src/pages/nl/ai-suite/_meta.js @@ -0,0 +1,8 @@ +import titles from './_meta-titles.json' + +export default { + 'ai-introduction': titles['ai-introduction'], + 'graph-assistant': titles['graph-assistant'], + 'subgraph-mcp': titles['subgraph-mcp'], + 'token-api-mcp': titles['token-api-mcp'], +} diff --git a/website/src/pages/nl/ai-suite/ai-introduction.mdx b/website/src/pages/nl/ai-suite/ai-introduction.mdx new file mode 100644 index 000000000000..d25cc9f77358 --- /dev/null +++ b/website/src/pages/nl/ai-suite/ai-introduction.mdx @@ -0,0 +1,58 @@ +--- +title: The Graph's AI +--- + +Build with speed and scale faster with The Graph's AI. + +## Using AI on The Graph + +Instead of relying on static datasets or centralized APIs, you can now access live blockchain data through our **agentic** app, [Graph Assistant](/ai-suite/graph-assistant/introduction/), and use our AI-native tooling, [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/), and [Token API MCP](/ai-suite/token-api-mcp/introduction/). + +### Why Use Onchain Data with AI? + +Using onchain data with AI unlocks powerful new ways to interact with and understand blockchain ecosystems. + +- **AI for Non-Technical End Users**: AI can turn complex onchain data into accessible insights. Assistants powered by AI enable you to explore and analyze blockchain data without coding. +- **AI for Developers**: You can use AI to interact directly with The Graph's data through your agents or build AI-powered applications on top of it. This streamlines development and opens up more intuitive, dynamic use cases. + +## AI for Non-Technical/End Users + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) is a powerful **agentic** application that empowers users to easily interact with blockchain data. Ask questions in simple, natural language and get rich, AI powered insights. Both technical developers and non-technical product teams can move faster, make smarter decisions, and gain a clearer understanding than ever before. + +### Benefits of Using Graph Assistant + +- **Natural language Input**: You don't need to write complex queries or sift through dashboards. Simply ask your question in plain English and get clear, structured results. +- **Multi-source support**: Works across multiple Subgraphs and Token API. The Assistant automatically determines which data source to use, so you don't have to switch tools or manage endpoints. +- **Schema-free access**: You don't need to understand the schema. You can refer to tokens, protocols, dates, or addresses using natural language. The Assistant takes care of the rest. + +### Conversational Querying with Graph Assistant + +**Example queries:** + +- "List the top-5 swaps by USD value in the last 24 hours." +- "Give me the daily volume on Uniswap." +- "List the 20 most recently registered .eth names." + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) will eventually be a one-stop shop for interacting with The Graph. Right now, it's an agentic AI app that uses state-of-the-art AI techniques, LLMs, and MCPs to understand and answer your questions about [Subgraphs](/subgraphs/developing/subgraphs/) and [Token API](/token-api/quick-start/) data. + +## AI for Developers + +### Enable Natural Language Access to Onchain Data + +[Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) servers connect to Claude, Cline, and Cursor. They enable models to understand, query, and interact with structured onchain data using natural language. MCPs remove the need to write low-level queries or interact with APIs directly. + +### Subgraph MCP + +The [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/) server connects models to Subgraphs on The Graph Network. It allows language models to explore Subgraph schemas, execute GraphQL queries, find relevant Subgraphs by keyword or contract, and surface usage metrics using natural language. + +### Token API MCP + +The [Token API MCP](/ai-suite/token-api-mcp/introduction/) MCP server enables models to access onchain token data. It supports querying token metadata, wallet balances, transfer history, and top token holders through simple prompts. + +#### Benefits of Using Subgraph and Token API MCPs + +- Query Subgraphs and token data using natural language +- Access GraphQL schemas and token metadata without manual queries +- Find Subgraphs by keyword or contract and check 30-day usage +- Retrieve real-time data from The Graph and onchain token sources +- Get wallet balances, transfer history, and top token holders diff --git a/website/src/pages/nl/ai-suite/graph-assistant/_meta.js b/website/src/pages/nl/ai-suite/graph-assistant/_meta.js new file mode 100644 index 000000000000..74da5e0686a7 --- /dev/null +++ b/website/src/pages/nl/ai-suite/graph-assistant/_meta.js @@ -0,0 +1,6 @@ +export default { + 'quick-start': '', + introduction: '', + 'how-to-guide': '', + faq: '', +} diff --git a/website/src/pages/nl/ai-suite/graph-assistant/faq.mdx b/website/src/pages/nl/ai-suite/graph-assistant/faq.mdx new file mode 100644 index 000000000000..8addf9935524 --- /dev/null +++ b/website/src/pages/nl/ai-suite/graph-assistant/faq.mdx @@ -0,0 +1,26 @@ +--- +title: Graph Assistant FAQ +sidebarTitle: 'FAQ' +--- + +This page summarizes some of the most common questions for developers using Graph Assistant. + +1. What is The Graph Assistant? + +The Graph Assistant is an AI-powered chat interface that lets you query blockchain data in plain English. Under the hood, it translates your questions into GraphQL calls against Subgraphs and the Token API, then returns results, no coding required. + +2. What is an agentic application? + +An agentic application combines AI-driven reasoning with external data sources or APIs to take autonomous actions on your behalf. In this case, Graph Assistant acts as an “agent” that interprets your natural-language prompts, builds and dispatches GraphQL queries, and formats the results so that you don't need to write or manage queries yourself. + +3. Which networks and data does Graph Assistant support? + +The Assistant has access to Subgraphs across multiple chains. If a Subgraph is published to The Graph Network and is being indexed, the Assistant can automatically route queries to it. The Assistant also has access to the Token API on Ethereum Mainnet, BSC, Unichain, Arbitrum-One, Optimism, and Polygon. + +4. Is there a usage limit or quota? + +Yes, 10 questions per hour. + +5. What if the Assistant can't interpret my question? + +When the Assistant fails to parse your intent (for example, ambiguous token name, missing context, or an unsupported request), it will prompt you for clarification. For instance, it might ask, “Did you mean XYZ on Ethereum or XYZ on Arbitrum?” or “Please specify a date range for this query.” If you continue to see parsing errors, check that you're using correct token symbols or specifying networks and time frames clearly. diff --git a/website/src/pages/nl/ai-suite/graph-assistant/how-to-guide.mdx b/website/src/pages/nl/ai-suite/graph-assistant/how-to-guide.mdx new file mode 100644 index 000000000000..463130894ad8 --- /dev/null +++ b/website/src/pages/nl/ai-suite/graph-assistant/how-to-guide.mdx @@ -0,0 +1,56 @@ +--- +title: How To Use The Graph Assistant +sidebarTitle: 'How-to Guide' +--- + +## Overview + +You type a natural language question into the chat interface, such as: + +```yaml +'On Uniswap, return the top-10 pools by total value locked in USD.' +``` + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the underlying agents. Do not share sensitive, personal, or private information. + +### Behind the Scenes + +The Assistant: + +1. Interprets your intent +2. Maps it to the correct Subgraphs or Token API endpoint +3. Executes optimized queries +4. Returns clean, structured results + +You don't need to write queries or understand a Subgraph's schema, you simply ask. + +### Example Use Cases + +**Protocol Analytics** + +- “Compare daily active users on Aave vs. Compound in May 2025.” +- “Show me the total value locked (TVL) for XYZDAO over the last quarter.” + +**Token Insights** + +- “What are the top 10 tokens by market cap on Ethereum right now?” +- “How many XYZ did I receive between May 1 and May 15?” + +**Historical Data Retrieval** + +- “Fetch the token price history of XYZ for the last six months.” +- “What was the average gas price on Ethereum during April?” + +**Portfolio Monitoring** + +- “List my wallet’s current token balances and their USD equivalents.” +- “Calculate profit/loss on XYZ since xyz date.” + +**Cross-Chain Comparison** + +- “Show me the 7-day trading volume of XYZ on Ethereum vs. Polygon.” +- “How many XYZ swaps occurred on Arbitrum yesterday?” + +To get started follow the [quickstart](/ai-suite/graph-assistant/quick-start/) and explore its capabilities. diff --git a/website/src/pages/nl/ai-suite/graph-assistant/introduction.mdx b/website/src/pages/nl/ai-suite/graph-assistant/introduction.mdx new file mode 100644 index 000000000000..65fdf0f96028 --- /dev/null +++ b/website/src/pages/nl/ai-suite/graph-assistant/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +[Graph Assistant](https://thegraph.com/graph-assistant) (Beta) gives instant, code-free access to blockchain data, transforming natural language into precise, AI-powered queries without the need to code. + +## Overview + +[Graph Assistant](https://thegraph.com/graph-assistant) is an advanced, [agentic](/en/ai-suite/graph-assistant/faq/) easy-to-use chat interface for querying blockchain data using natural language. Unlike a basic chatbot, Graph Assistant can understand your intent, build complex queries, and execute them automatically. This gives you rich, AI-powered insights from onchain data without writing any code. + +- **Automatically** interprets user intent, generates precise queries, executes them via The Graph's Subgraphs and Token API, and presents structured, AI-powered answers without requiring any code. +- **Removes** the technical complexity found in traditional dashboards or chatbots. It provides composable insights directly from indexed Subgraphs and Token datasets. + +## Core Features + +| Feature | Description | +| --- | --- | +| **Friendly Interface** | Conversational access to blockchain data via natural language. You simply ask questions, the Assistant fetches the answer, and renders results. | +| **Backed by Subgraphs** | Uses subgraphs to index protocol-specific data like transactions, events, and protocol metrics. | +| **Backed by Token API** | Uses Token API for token-level information like balances, transfers, and metadata. | +| **No Setup Required** | No need to configure data sources or write queries. | +| **Automatic Query Building** | The Assistant performs complex queries such as fetching historical token volumes, protocol analytics, or cross-chain data and handles filtering, pagination, and joins across Subgraphs automatically. | + +## Help Shape What's Next + +This is in **beta**, and community input is essential. If you have ideas, questions, or run into anything unexpected, we'd love to hear from you: + +- Join the community on [Discord](https://discord.com/invite/graphprotocol): Provide feedback and stay in the loop with other builders. You'll be able to join the `#graph-assistant` channel to share your experience directly. +- Interested in going deeper? Reach out to become a dedicated beta tester so your specific use case can be better supported. diff --git a/website/src/pages/nl/ai-suite/graph-assistant/quick-start.mdx b/website/src/pages/nl/ai-suite/graph-assistant/quick-start.mdx new file mode 100644 index 000000000000..13f8478b8d2b --- /dev/null +++ b/website/src/pages/nl/ai-suite/graph-assistant/quick-start.mdx @@ -0,0 +1,44 @@ +--- +title: Quick Start +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +This guide provides step-by-step instructions for getting started with Graph Assistant quickly. + +## Step-by Step + +### Step 1. Create an Account + +Go to: [Graph Assistant](https://thegraph.com/graph-assistant) + +- Click Sign Up (or Log In if you already have an account). +- Use your Google, GitHub, X, email or wallet credentials to log in. +- No additional setup is required. + +### Step 2. Open the Assistant Chat + +After logging in: + +- You'll see Graph Assistant's interface. +- At the bottom of the page, you will find a chat input bar. This is where you will interact with the Assistant. + +### Step 3: Ask Your First Question + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +In the input bar, type a natural-language query (everyday language). + +Example: + +```yaml +Show me the 24-hour trading volume of XYZ token on Ethereum +``` + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the AI interface. Do not share sensitive, personal, or private information. + +The Assistant will: + +- Digest your question +- Fetch onchain data using Subgraphs or the Token API +- Return a clean, formatted response with the data you need diff --git a/website/src/pages/nl/ai-suite/subgraph-mcp/_meta.js b/website/src/pages/nl/ai-suite/subgraph-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/nl/ai-suite/subgraph-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/nl/ai-suite/subgraph-mcp/claude.mdx b/website/src/pages/nl/ai-suite/subgraph-mcp/claude.mdx new file mode 100644 index 000000000000..ff3caa4e3e7f --- /dev/null +++ b/website/src/pages/nl/ai-suite/subgraph-mcp/claude.mdx @@ -0,0 +1,169 @@ +--- +title: Claude Desktop +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data via natural language conversations with Claude. + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` diff --git a/website/src/pages/nl/ai-suite/subgraph-mcp/cline.mdx b/website/src/pages/nl/ai-suite/subgraph-mcp/cline.mdx new file mode 100644 index 000000000000..eb8044bfe991 --- /dev/null +++ b/website/src/pages/nl/ai-suite/subgraph-mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "Subgraph Server Instructions" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/nl/ai-suite/subgraph-mcp/cursor.mdx b/website/src/pages/nl/ai-suite/subgraph-mcp/cursor.mdx new file mode 100644 index 000000000000..6291caf4b06b --- /dev/null +++ b/website/src/pages/nl/ai-suite/subgraph-mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/nl/ai-suite/subgraph-mcp/introduction.mdx b/website/src/pages/nl/ai-suite/subgraph-mcp/introduction.mdx new file mode 100644 index 000000000000..da1272cf9a36 --- /dev/null +++ b/website/src/pages/nl/ai-suite/subgraph-mcp/introduction.mdx @@ -0,0 +1,22 @@ +--- +title: Subgraph MCP Introduction +sidebarTitle: 'Introduction' +--- + +Subgraph MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +It presents The Graph's Subgraph data through a set of MCP tools that any MCP-compatible client can call. With these tools, clients can search for relevant Subgraphs, inspect GraphQL schemas, and run queries against specific deployments on The Graph Network all within a single, standardized interface. + +The server itself does not hold a language model. Instead, it translates incoming MCP requests into Subgraph queries and returns the structured results, allowing the client's LLM to transform a natural-language prompt into actionable blockchain data. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Subgraph ecosystem. + +## What You Can Do + +- Access GraphQL schemas for any Subgraph on The Graph Network +- Run GraphQL queries on any Subgraph deployment +- Discover top Subgraph deployments by keyword or contract address +- Retrieve 30-day query volumes for Subgraph deployments +- Ask questions about Subgraph data without writing GraphQL manually + +The Subgraph MCP server allows smooth integration with [Claude](/ai-suite/subgraph-mcp/claude/), [Cline](/ai-suite/subgraph-mcp/cline/), or [Cursor](/ai-suite/subgraph-mcp/cursor/), making blockchain data queries with The Graph Network a conversational experience. diff --git a/website/src/pages/nl/ai-suite/token-api-mcp/_meta.js b/website/src/pages/nl/ai-suite/token-api-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/nl/ai-suite/token-api-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/es/token-api/mcp/claude.mdx b/website/src/pages/nl/ai-suite/token-api-mcp/claude.mdx similarity index 99% rename from website/src/pages/es/token-api/mcp/claude.mdx rename to website/src/pages/nl/ai-suite/token-api-mcp/claude.mdx index 78a48fa92844..3e21f4d7e165 100644 --- a/website/src/pages/es/token-api/mcp/claude.mdx +++ b/website/src/pages/nl/ai-suite/token-api-mcp/claude.mdx @@ -12,7 +12,7 @@ sidebarTitle: Claude Desktop ![Screenshot of Claude Desktop's settings panel showing the MCP server configuration option.](/img/claude-preview-token-api.png) -## Configuración +## Configuration Create or edit your `claude_desktop_config.json` file. diff --git a/website/src/pages/tr/token-api/mcp/cline.mdx b/website/src/pages/nl/ai-suite/token-api-mcp/cline.mdx similarity index 99% rename from website/src/pages/tr/token-api/mcp/cline.mdx rename to website/src/pages/nl/ai-suite/token-api-mcp/cline.mdx index b7dfca87fbdd..e885d21366cd 100644 --- a/website/src/pages/tr/token-api/mcp/cline.mdx +++ b/website/src/pages/nl/ai-suite/token-api-mcp/cline.mdx @@ -12,7 +12,7 @@ sidebarTitle: Cline ![Screenshot of Cline's MCP server configuration interface displaying the JSON settings file with mcp-pinax server details visible.](/img/cline-preview-token-api.png) -## Yapılandırma +## Configuration Create or edit your `cline_mcp_settings.json` file. diff --git a/website/src/pages/es/token-api/mcp/cursor.mdx b/website/src/pages/nl/ai-suite/token-api-mcp/cursor.mdx similarity index 98% rename from website/src/pages/es/token-api/mcp/cursor.mdx rename to website/src/pages/nl/ai-suite/token-api-mcp/cursor.mdx index 34f990fac24d..68fe2fdb201c 100644 --- a/website/src/pages/es/token-api/mcp/cursor.mdx +++ b/website/src/pages/nl/ai-suite/token-api-mcp/cursor.mdx @@ -12,7 +12,7 @@ sidebarTitle: Cursor ![Screenshot of Cursor's MCP configuration panel.](/img/cursor-preview-token-api.png) -## Configuración +## Configuration Create or edit your `~/.cursor/mcp.json` file. diff --git a/website/src/pages/nl/ai-suite/token-api-mcp/introduction.mdx b/website/src/pages/nl/ai-suite/token-api-mcp/introduction.mdx new file mode 100644 index 000000000000..b61ad0a1c485 --- /dev/null +++ b/website/src/pages/nl/ai-suite/token-api-mcp/introduction.mdx @@ -0,0 +1,23 @@ +--- +title: Token API MCP Introduction +sidebarTitle: 'Introduction' +--- + +Token API MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +This MCP server makes on-chain token data, including metadata, balances, transfers, and holder statistics, accessible through a set of MCP tools. Any compatible client can use these tools to fetch and analyze token information through a standardized interface. It connects to The Graph's hosted Token API database, enabling AI assistants to query real-time blockchain data using natural language requests that get translated into optimized SQL queries. + +The server itself does not host any language model. It simply converts MCP calls into data look-ups and returns structured results, letting the client's own LLM incorporate the results. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Token API data. + +## What You Can Do + +- Retrieve token metadata including name, symbol, decimals, total supply, and contract address +- Get token balances for any wallet address holding a supported ERC-20 token +- Fetch token transfer activity including sender, receiver, amount, and timestamp +- Identify top holders and analyze token distribution +- Ask natural language questions about token data without writing smart contract calls +- Access historical transfer data to analyze token movement over time + +The Token MCP server provides [Claude](/ai-suite/token-api-mcp/claude/), [Cline](/ai-suite/token-api-mcp/cline/), and [Cursor](/ai-suite/token-api-mcp/cursor/) with direct, conversational access to onchain token data. diff --git a/website/src/pages/nl/resources/_meta.js b/website/src/pages/nl/resources/_meta.js index aa8e2d0ec6a8..38c56cf56c43 100644 --- a/website/src/pages/nl/resources/_meta.js +++ b/website/src/pages/nl/resources/_meta.js @@ -7,5 +7,4 @@ export default { roles: titles.roles ?? '', 'migration-guides': titles['migration-guides'] ?? '', 'subgraph-studio-faq': '', - 'claude-mcp': '', } diff --git a/website/src/pages/nl/resources/claude-mcp.mdx b/website/src/pages/nl/resources/claude-mcp.mdx deleted file mode 100644 index 44ed075cffda..000000000000 --- a/website/src/pages/nl/resources/claude-mcp.mdx +++ /dev/null @@ -1,122 +0,0 @@ ---- -title: Claude MCP ---- - -This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. - -## What You Can Do - -With these integrations, you can: - -- **Token API**: Access token and wallet information across multiple blockchains -- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries - -## Prerequisites - -- [Node.js](https://nodejs.org/en/download/) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed -- API keys: - - Token API key from [The Graph Market](https://thegraph.market/) - - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -## Configuration Steps - -### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** - -Paths by operating system: - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -### 2. Add Configuration - -Replace the contents of the existing config file with: - -```json -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "ACCESS_TOKEN" - } - }, - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Keys - -Replace: - -- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) -- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -### 4. Save and Restart - -- Save the configuration file -- Restart Claude Desktop - -### 5. Add The Graph Resources in Claude - -After configuration: - -1. Start a new conversation in Claude Desktop -2. Click on the context menu (top right) -3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP - -> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. - -### 6. Run Queries - -Here are some example queries you can try after setting up the resources: - -### Subgraph Queries - -``` -What are the top pools in Uniswap? -``` - -``` -Who are the top Delegators of The Graph Protocol? -``` - -``` -Please make a bar chart for the number of active loans in Compound for the last 7 days -``` - -### Token API Queries - -``` -Show me the current price of ETH -``` - -``` -What are the top tokens by market cap on Ethereum? -``` - -``` -Analyze this wallet address: 0x... -``` - -## Troubleshooting - -If you encounter issues: - -1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal -2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file -3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs -4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop diff --git a/website/src/pages/nl/subgraphs/_meta.js b/website/src/pages/nl/subgraphs/_meta.js index 4365293ffc72..45841d5f3355 100644 --- a/website/src/pages/nl/subgraphs/_meta.js +++ b/website/src/pages/nl/subgraphs/_meta.js @@ -6,7 +6,6 @@ export default { querying: titles.querying ?? '', developing: titles.developing ?? '', billing: '', - mcp: titles.mcp ?? '', guides: titles.guides, 'best-practices': titles['best-practices'], 'fair-use-policy': '', diff --git a/website/src/pages/nl/subgraphs/mcp/_meta.js b/website/src/pages/nl/subgraphs/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/nl/subgraphs/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/nl/subgraphs/mcp/claude.mdx b/website/src/pages/nl/subgraphs/mcp/claude.mdx deleted file mode 100644 index 027b272cb942..000000000000 --- a/website/src/pages/nl/subgraphs/mcp/claude.mdx +++ /dev/null @@ -1,179 +0,0 @@ ---- -title: Claude Desktop ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. - -## What You Can Do - -The Subgraph MCP integration enables you to: - -- Access the GraphQL schema for any Subgraph on The Graph Network -- Execute GraphQL queries against any Subgraph deployment -- Find top Subgraph deployments for a given keyword or contract address -- Get 30-day query volume for Subgraph deployments -- Ask natural language questions about Subgraph data without writing GraphQL queries manually - -## Prerequisites - -- [Node.js](https://nodejs.org/en) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) - -## Installation Options - -### Option 1: Using npx (Recommended) - -#### Configuration Steps using npx - -#### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Settings** > **Developer** > **Edit Config** - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -#### 2. Add Configuration - -Paste the following settings into your config file: - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -#### 3. Add Your Gateway API Key - -Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). - -#### 4. Save and Restart - -Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. - -### Option 2: Building from Source - -#### Requirements - -- Rust (latest stable version recommended: 1.75+) - ```bash - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - ``` - Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). - -#### Installation Steps - -1. **Clone and Build the Repository** - - ```bash - git clone git@github.com:graphops/subgraph-mcp.git - cd subgraph-mcp - cargo build --release - ``` - -2. **Find the Command Path** - - After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - - Run `pwd` to get the full path - - Combine the output with `/target/release/subgraph-mcp` - -3. **Configure Claude Desktop** - - Open your `claude_desktop_config.json` file as described above and add: - - ```json - { - "mcpServers": { - "subgraph": { - "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", - "env": { - "GATEWAY_API_KEY": "your-api-key-here" - } - } - } - } - ``` - - Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. - -## Using The Graph Resource in Claude - -After configuring Claude Desktop: - -1. Restart Claude Desktop -2. Start a new conversation -3. Click on the context menu (top right) -4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context - -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. - -## Troubleshooting - -To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal -- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments -- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees - -## Key Identifier Types - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -``` -Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one -``` diff --git a/website/src/pages/nl/subgraphs/mcp/cline.mdx b/website/src/pages/nl/subgraphs/mcp/cline.mdx deleted file mode 100644 index 156221d9a127..000000000000 --- a/website/src/pages/nl/subgraphs/mcp/cline.mdx +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: Cline ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. - -## Prerequisites - -- [Cline](https://cline.bot/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `cline_mcp_settings.json` file. - -> **MCP Servers** > **Installed** > **Configure MCP Servers** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -## Using The Graph Resource in Cline - -After configuring Cline: - -1. Restart Cline -2. Start a new conversation -3. Enable the Subgraph MCP from the context menu -4. Add "Subgraph Server Instructions" as a resource to your chat context - -## Available Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/nl/subgraphs/mcp/cursor.mdx b/website/src/pages/nl/subgraphs/mcp/cursor.mdx deleted file mode 100644 index 298f43ece048..000000000000 --- a/website/src/pages/nl/subgraphs/mcp/cursor.mdx +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Cursor ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. - -## Prerequisites - -- [Cursor](https://www.cursor.com/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `~/.cursor/mcp.json` file. - -> **Cursor Settings** > **MCP** > **Add new global MCP Server** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -### 4. Restart Cursor - -Restart Cursor, and start a new chat. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/nl/substreams/_meta.js b/website/src/pages/nl/substreams/_meta.js index a8ee04618eae..658bb8c213c6 100644 --- a/website/src/pages/nl/substreams/_meta.js +++ b/website/src/pages/nl/substreams/_meta.js @@ -5,5 +5,4 @@ export default { introduction: '', developing: titles.developing ?? '', publishing: '', - sps: titles.sps ?? '', } diff --git a/website/src/pages/nl/token-api/_meta-titles.json b/website/src/pages/nl/token-api/_meta-titles.json index 7ed31e0af95d..3108ecd3ebfd 100644 --- a/website/src/pages/nl/token-api/_meta-titles.json +++ b/website/src/pages/nl/token-api/_meta-titles.json @@ -1,6 +1,7 @@ { "mcp": "MCP", "evm": "EVM Endpoints", + "svm": "SVM Endpoints", "monitoring": "Monitoring Endpoints", "faq": "FAQ" } diff --git a/website/src/pages/nl/token-api/_meta.js b/website/src/pages/nl/token-api/_meta.js index f67576d7f612..fb7f7334ea0c 100644 --- a/website/src/pages/nl/token-api/_meta.js +++ b/website/src/pages/nl/token-api/_meta.js @@ -2,8 +2,8 @@ import titles from './_meta-titles.json' export default { 'quick-start': '', - mcp: titles.mcp ?? '', evm: titles.evm ?? '', + svm: titles.svm ?? '', monitoring: titles.monitoring ?? '', faq: '', } diff --git a/website/src/pages/nl/token-api/mcp/_meta.js b/website/src/pages/nl/token-api/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/nl/token-api/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/nl/token-api/svm/_meta.js b/website/src/pages/nl/token-api/svm/_meta.js new file mode 100644 index 000000000000..1a48b82fcbf1 --- /dev/null +++ b/website/src/pages/nl/token-api/svm/_meta.js @@ -0,0 +1,5 @@ +export default { + 'get-balances-svm': '', + 'get-transfers-svm': '', + 'get-swaps-svm': '', +} diff --git a/website/src/pages/nl/token-api/svm/get-balances-svm.mdx b/website/src/pages/nl/token-api/svm/get-balances-svm.mdx new file mode 100644 index 000000000000..c2946c190bf9 --- /dev/null +++ b/website/src/pages/nl/token-api/svm/get-balances-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Balances +template: + type: openApi + apiId: tokenApi + operationId: getBalancesSvm +--- + +Provides Solana tokens balances by token account address. diff --git a/website/src/pages/nl/token-api/svm/get-swaps-svm.mdx b/website/src/pages/nl/token-api/svm/get-swaps-svm.mdx new file mode 100644 index 000000000000..95282a38ac9f --- /dev/null +++ b/website/src/pages/nl/token-api/svm/get-swaps-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsSvm +--- + +Provides Raydium swap events. diff --git a/website/src/pages/nl/token-api/svm/get-transfers-svm.mdx b/website/src/pages/nl/token-api/svm/get-transfers-svm.mdx new file mode 100644 index 000000000000..5335cdddf418 --- /dev/null +++ b/website/src/pages/nl/token-api/svm/get-transfers-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersSvm +--- + +Provides SVM transfer events. diff --git a/website/src/pages/pl/ai-suite/_meta-titles.json b/website/src/pages/pl/ai-suite/_meta-titles.json new file mode 100644 index 000000000000..5eb482a7092b --- /dev/null +++ b/website/src/pages/pl/ai-suite/_meta-titles.json @@ -0,0 +1,6 @@ +{ + "graph-assistant": "Graph Assistant", + "ai-introduction": "The Graph's AI", + "subgraph-mcp": "Subgraph MCP", + "token-api-mcp": "Token API MCP" +} diff --git a/website/src/pages/pl/ai-suite/_meta.js b/website/src/pages/pl/ai-suite/_meta.js new file mode 100644 index 000000000000..c9e51dfd35fb --- /dev/null +++ b/website/src/pages/pl/ai-suite/_meta.js @@ -0,0 +1,8 @@ +import titles from './_meta-titles.json' + +export default { + 'ai-introduction': titles['ai-introduction'], + 'graph-assistant': titles['graph-assistant'], + 'subgraph-mcp': titles['subgraph-mcp'], + 'token-api-mcp': titles['token-api-mcp'], +} diff --git a/website/src/pages/pl/ai-suite/ai-introduction.mdx b/website/src/pages/pl/ai-suite/ai-introduction.mdx new file mode 100644 index 000000000000..d25cc9f77358 --- /dev/null +++ b/website/src/pages/pl/ai-suite/ai-introduction.mdx @@ -0,0 +1,58 @@ +--- +title: The Graph's AI +--- + +Build with speed and scale faster with The Graph's AI. + +## Using AI on The Graph + +Instead of relying on static datasets or centralized APIs, you can now access live blockchain data through our **agentic** app, [Graph Assistant](/ai-suite/graph-assistant/introduction/), and use our AI-native tooling, [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/), and [Token API MCP](/ai-suite/token-api-mcp/introduction/). + +### Why Use Onchain Data with AI? + +Using onchain data with AI unlocks powerful new ways to interact with and understand blockchain ecosystems. + +- **AI for Non-Technical End Users**: AI can turn complex onchain data into accessible insights. Assistants powered by AI enable you to explore and analyze blockchain data without coding. +- **AI for Developers**: You can use AI to interact directly with The Graph's data through your agents or build AI-powered applications on top of it. This streamlines development and opens up more intuitive, dynamic use cases. + +## AI for Non-Technical/End Users + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) is a powerful **agentic** application that empowers users to easily interact with blockchain data. Ask questions in simple, natural language and get rich, AI powered insights. Both technical developers and non-technical product teams can move faster, make smarter decisions, and gain a clearer understanding than ever before. + +### Benefits of Using Graph Assistant + +- **Natural language Input**: You don't need to write complex queries or sift through dashboards. Simply ask your question in plain English and get clear, structured results. +- **Multi-source support**: Works across multiple Subgraphs and Token API. The Assistant automatically determines which data source to use, so you don't have to switch tools or manage endpoints. +- **Schema-free access**: You don't need to understand the schema. You can refer to tokens, protocols, dates, or addresses using natural language. The Assistant takes care of the rest. + +### Conversational Querying with Graph Assistant + +**Example queries:** + +- "List the top-5 swaps by USD value in the last 24 hours." +- "Give me the daily volume on Uniswap." +- "List the 20 most recently registered .eth names." + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) will eventually be a one-stop shop for interacting with The Graph. Right now, it's an agentic AI app that uses state-of-the-art AI techniques, LLMs, and MCPs to understand and answer your questions about [Subgraphs](/subgraphs/developing/subgraphs/) and [Token API](/token-api/quick-start/) data. + +## AI for Developers + +### Enable Natural Language Access to Onchain Data + +[Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) servers connect to Claude, Cline, and Cursor. They enable models to understand, query, and interact with structured onchain data using natural language. MCPs remove the need to write low-level queries or interact with APIs directly. + +### Subgraph MCP + +The [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/) server connects models to Subgraphs on The Graph Network. It allows language models to explore Subgraph schemas, execute GraphQL queries, find relevant Subgraphs by keyword or contract, and surface usage metrics using natural language. + +### Token API MCP + +The [Token API MCP](/ai-suite/token-api-mcp/introduction/) MCP server enables models to access onchain token data. It supports querying token metadata, wallet balances, transfer history, and top token holders through simple prompts. + +#### Benefits of Using Subgraph and Token API MCPs + +- Query Subgraphs and token data using natural language +- Access GraphQL schemas and token metadata without manual queries +- Find Subgraphs by keyword or contract and check 30-day usage +- Retrieve real-time data from The Graph and onchain token sources +- Get wallet balances, transfer history, and top token holders diff --git a/website/src/pages/pl/ai-suite/graph-assistant/_meta.js b/website/src/pages/pl/ai-suite/graph-assistant/_meta.js new file mode 100644 index 000000000000..74da5e0686a7 --- /dev/null +++ b/website/src/pages/pl/ai-suite/graph-assistant/_meta.js @@ -0,0 +1,6 @@ +export default { + 'quick-start': '', + introduction: '', + 'how-to-guide': '', + faq: '', +} diff --git a/website/src/pages/pl/ai-suite/graph-assistant/faq.mdx b/website/src/pages/pl/ai-suite/graph-assistant/faq.mdx new file mode 100644 index 000000000000..8addf9935524 --- /dev/null +++ b/website/src/pages/pl/ai-suite/graph-assistant/faq.mdx @@ -0,0 +1,26 @@ +--- +title: Graph Assistant FAQ +sidebarTitle: 'FAQ' +--- + +This page summarizes some of the most common questions for developers using Graph Assistant. + +1. What is The Graph Assistant? + +The Graph Assistant is an AI-powered chat interface that lets you query blockchain data in plain English. Under the hood, it translates your questions into GraphQL calls against Subgraphs and the Token API, then returns results, no coding required. + +2. What is an agentic application? + +An agentic application combines AI-driven reasoning with external data sources or APIs to take autonomous actions on your behalf. In this case, Graph Assistant acts as an “agent” that interprets your natural-language prompts, builds and dispatches GraphQL queries, and formats the results so that you don't need to write or manage queries yourself. + +3. Which networks and data does Graph Assistant support? + +The Assistant has access to Subgraphs across multiple chains. If a Subgraph is published to The Graph Network and is being indexed, the Assistant can automatically route queries to it. The Assistant also has access to the Token API on Ethereum Mainnet, BSC, Unichain, Arbitrum-One, Optimism, and Polygon. + +4. Is there a usage limit or quota? + +Yes, 10 questions per hour. + +5. What if the Assistant can't interpret my question? + +When the Assistant fails to parse your intent (for example, ambiguous token name, missing context, or an unsupported request), it will prompt you for clarification. For instance, it might ask, “Did you mean XYZ on Ethereum or XYZ on Arbitrum?” or “Please specify a date range for this query.” If you continue to see parsing errors, check that you're using correct token symbols or specifying networks and time frames clearly. diff --git a/website/src/pages/pl/ai-suite/graph-assistant/how-to-guide.mdx b/website/src/pages/pl/ai-suite/graph-assistant/how-to-guide.mdx new file mode 100644 index 000000000000..463130894ad8 --- /dev/null +++ b/website/src/pages/pl/ai-suite/graph-assistant/how-to-guide.mdx @@ -0,0 +1,56 @@ +--- +title: How To Use The Graph Assistant +sidebarTitle: 'How-to Guide' +--- + +## Overview + +You type a natural language question into the chat interface, such as: + +```yaml +'On Uniswap, return the top-10 pools by total value locked in USD.' +``` + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the underlying agents. Do not share sensitive, personal, or private information. + +### Behind the Scenes + +The Assistant: + +1. Interprets your intent +2. Maps it to the correct Subgraphs or Token API endpoint +3. Executes optimized queries +4. Returns clean, structured results + +You don't need to write queries or understand a Subgraph's schema, you simply ask. + +### Example Use Cases + +**Protocol Analytics** + +- “Compare daily active users on Aave vs. Compound in May 2025.” +- “Show me the total value locked (TVL) for XYZDAO over the last quarter.” + +**Token Insights** + +- “What are the top 10 tokens by market cap on Ethereum right now?” +- “How many XYZ did I receive between May 1 and May 15?” + +**Historical Data Retrieval** + +- “Fetch the token price history of XYZ for the last six months.” +- “What was the average gas price on Ethereum during April?” + +**Portfolio Monitoring** + +- “List my wallet’s current token balances and their USD equivalents.” +- “Calculate profit/loss on XYZ since xyz date.” + +**Cross-Chain Comparison** + +- “Show me the 7-day trading volume of XYZ on Ethereum vs. Polygon.” +- “How many XYZ swaps occurred on Arbitrum yesterday?” + +To get started follow the [quickstart](/ai-suite/graph-assistant/quick-start/) and explore its capabilities. diff --git a/website/src/pages/pl/ai-suite/graph-assistant/introduction.mdx b/website/src/pages/pl/ai-suite/graph-assistant/introduction.mdx new file mode 100644 index 000000000000..65fdf0f96028 --- /dev/null +++ b/website/src/pages/pl/ai-suite/graph-assistant/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +[Graph Assistant](https://thegraph.com/graph-assistant) (Beta) gives instant, code-free access to blockchain data, transforming natural language into precise, AI-powered queries without the need to code. + +## Overview + +[Graph Assistant](https://thegraph.com/graph-assistant) is an advanced, [agentic](/en/ai-suite/graph-assistant/faq/) easy-to-use chat interface for querying blockchain data using natural language. Unlike a basic chatbot, Graph Assistant can understand your intent, build complex queries, and execute them automatically. This gives you rich, AI-powered insights from onchain data without writing any code. + +- **Automatically** interprets user intent, generates precise queries, executes them via The Graph's Subgraphs and Token API, and presents structured, AI-powered answers without requiring any code. +- **Removes** the technical complexity found in traditional dashboards or chatbots. It provides composable insights directly from indexed Subgraphs and Token datasets. + +## Core Features + +| Feature | Description | +| --- | --- | +| **Friendly Interface** | Conversational access to blockchain data via natural language. You simply ask questions, the Assistant fetches the answer, and renders results. | +| **Backed by Subgraphs** | Uses subgraphs to index protocol-specific data like transactions, events, and protocol metrics. | +| **Backed by Token API** | Uses Token API for token-level information like balances, transfers, and metadata. | +| **No Setup Required** | No need to configure data sources or write queries. | +| **Automatic Query Building** | The Assistant performs complex queries such as fetching historical token volumes, protocol analytics, or cross-chain data and handles filtering, pagination, and joins across Subgraphs automatically. | + +## Help Shape What's Next + +This is in **beta**, and community input is essential. If you have ideas, questions, or run into anything unexpected, we'd love to hear from you: + +- Join the community on [Discord](https://discord.com/invite/graphprotocol): Provide feedback and stay in the loop with other builders. You'll be able to join the `#graph-assistant` channel to share your experience directly. +- Interested in going deeper? Reach out to become a dedicated beta tester so your specific use case can be better supported. diff --git a/website/src/pages/pl/ai-suite/graph-assistant/quick-start.mdx b/website/src/pages/pl/ai-suite/graph-assistant/quick-start.mdx new file mode 100644 index 000000000000..13f8478b8d2b --- /dev/null +++ b/website/src/pages/pl/ai-suite/graph-assistant/quick-start.mdx @@ -0,0 +1,44 @@ +--- +title: Quick Start +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +This guide provides step-by-step instructions for getting started with Graph Assistant quickly. + +## Step-by Step + +### Step 1. Create an Account + +Go to: [Graph Assistant](https://thegraph.com/graph-assistant) + +- Click Sign Up (or Log In if you already have an account). +- Use your Google, GitHub, X, email or wallet credentials to log in. +- No additional setup is required. + +### Step 2. Open the Assistant Chat + +After logging in: + +- You'll see Graph Assistant's interface. +- At the bottom of the page, you will find a chat input bar. This is where you will interact with the Assistant. + +### Step 3: Ask Your First Question + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +In the input bar, type a natural-language query (everyday language). + +Example: + +```yaml +Show me the 24-hour trading volume of XYZ token on Ethereum +``` + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the AI interface. Do not share sensitive, personal, or private information. + +The Assistant will: + +- Digest your question +- Fetch onchain data using Subgraphs or the Token API +- Return a clean, formatted response with the data you need diff --git a/website/src/pages/pl/ai-suite/subgraph-mcp/_meta.js b/website/src/pages/pl/ai-suite/subgraph-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/pl/ai-suite/subgraph-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/pl/ai-suite/subgraph-mcp/claude.mdx b/website/src/pages/pl/ai-suite/subgraph-mcp/claude.mdx new file mode 100644 index 000000000000..ff3caa4e3e7f --- /dev/null +++ b/website/src/pages/pl/ai-suite/subgraph-mcp/claude.mdx @@ -0,0 +1,169 @@ +--- +title: Claude Desktop +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data via natural language conversations with Claude. + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` diff --git a/website/src/pages/pl/ai-suite/subgraph-mcp/cline.mdx b/website/src/pages/pl/ai-suite/subgraph-mcp/cline.mdx new file mode 100644 index 000000000000..eb8044bfe991 --- /dev/null +++ b/website/src/pages/pl/ai-suite/subgraph-mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "Subgraph Server Instructions" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/pl/ai-suite/subgraph-mcp/cursor.mdx b/website/src/pages/pl/ai-suite/subgraph-mcp/cursor.mdx new file mode 100644 index 000000000000..6291caf4b06b --- /dev/null +++ b/website/src/pages/pl/ai-suite/subgraph-mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/pl/ai-suite/subgraph-mcp/introduction.mdx b/website/src/pages/pl/ai-suite/subgraph-mcp/introduction.mdx new file mode 100644 index 000000000000..da1272cf9a36 --- /dev/null +++ b/website/src/pages/pl/ai-suite/subgraph-mcp/introduction.mdx @@ -0,0 +1,22 @@ +--- +title: Subgraph MCP Introduction +sidebarTitle: 'Introduction' +--- + +Subgraph MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +It presents The Graph's Subgraph data through a set of MCP tools that any MCP-compatible client can call. With these tools, clients can search for relevant Subgraphs, inspect GraphQL schemas, and run queries against specific deployments on The Graph Network all within a single, standardized interface. + +The server itself does not hold a language model. Instead, it translates incoming MCP requests into Subgraph queries and returns the structured results, allowing the client's LLM to transform a natural-language prompt into actionable blockchain data. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Subgraph ecosystem. + +## What You Can Do + +- Access GraphQL schemas for any Subgraph on The Graph Network +- Run GraphQL queries on any Subgraph deployment +- Discover top Subgraph deployments by keyword or contract address +- Retrieve 30-day query volumes for Subgraph deployments +- Ask questions about Subgraph data without writing GraphQL manually + +The Subgraph MCP server allows smooth integration with [Claude](/ai-suite/subgraph-mcp/claude/), [Cline](/ai-suite/subgraph-mcp/cline/), or [Cursor](/ai-suite/subgraph-mcp/cursor/), making blockchain data queries with The Graph Network a conversational experience. diff --git a/website/src/pages/pl/ai-suite/token-api-mcp/_meta.js b/website/src/pages/pl/ai-suite/token-api-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/pl/ai-suite/token-api-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/tr/token-api/mcp/claude.mdx b/website/src/pages/pl/ai-suite/token-api-mcp/claude.mdx similarity index 99% rename from website/src/pages/tr/token-api/mcp/claude.mdx rename to website/src/pages/pl/ai-suite/token-api-mcp/claude.mdx index 008e0ea6a9a4..3e21f4d7e165 100644 --- a/website/src/pages/tr/token-api/mcp/claude.mdx +++ b/website/src/pages/pl/ai-suite/token-api-mcp/claude.mdx @@ -12,7 +12,7 @@ sidebarTitle: Claude Desktop ![Screenshot of Claude Desktop's settings panel showing the MCP server configuration option.](/img/claude-preview-token-api.png) -## Yapılandırma +## Configuration Create or edit your `claude_desktop_config.json` file. diff --git a/website/src/pages/es/token-api/mcp/cline.mdx b/website/src/pages/pl/ai-suite/token-api-mcp/cline.mdx similarity index 99% rename from website/src/pages/es/token-api/mcp/cline.mdx rename to website/src/pages/pl/ai-suite/token-api-mcp/cline.mdx index 776a978f2eb0..e885d21366cd 100644 --- a/website/src/pages/es/token-api/mcp/cline.mdx +++ b/website/src/pages/pl/ai-suite/token-api-mcp/cline.mdx @@ -12,7 +12,7 @@ sidebarTitle: Cline ![Screenshot of Cline's MCP server configuration interface displaying the JSON settings file with mcp-pinax server details visible.](/img/cline-preview-token-api.png) -## Configuración +## Configuration Create or edit your `cline_mcp_settings.json` file. diff --git a/website/src/pages/tr/token-api/mcp/cursor.mdx b/website/src/pages/pl/ai-suite/token-api-mcp/cursor.mdx similarity index 98% rename from website/src/pages/tr/token-api/mcp/cursor.mdx rename to website/src/pages/pl/ai-suite/token-api-mcp/cursor.mdx index 121073c02e13..68fe2fdb201c 100644 --- a/website/src/pages/tr/token-api/mcp/cursor.mdx +++ b/website/src/pages/pl/ai-suite/token-api-mcp/cursor.mdx @@ -12,7 +12,7 @@ sidebarTitle: Cursor ![Screenshot of Cursor's MCP configuration panel.](/img/cursor-preview-token-api.png) -## Yapılandırma +## Configuration Create or edit your `~/.cursor/mcp.json` file. diff --git a/website/src/pages/pl/ai-suite/token-api-mcp/introduction.mdx b/website/src/pages/pl/ai-suite/token-api-mcp/introduction.mdx new file mode 100644 index 000000000000..b61ad0a1c485 --- /dev/null +++ b/website/src/pages/pl/ai-suite/token-api-mcp/introduction.mdx @@ -0,0 +1,23 @@ +--- +title: Token API MCP Introduction +sidebarTitle: 'Introduction' +--- + +Token API MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +This MCP server makes on-chain token data, including metadata, balances, transfers, and holder statistics, accessible through a set of MCP tools. Any compatible client can use these tools to fetch and analyze token information through a standardized interface. It connects to The Graph's hosted Token API database, enabling AI assistants to query real-time blockchain data using natural language requests that get translated into optimized SQL queries. + +The server itself does not host any language model. It simply converts MCP calls into data look-ups and returns structured results, letting the client's own LLM incorporate the results. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Token API data. + +## What You Can Do + +- Retrieve token metadata including name, symbol, decimals, total supply, and contract address +- Get token balances for any wallet address holding a supported ERC-20 token +- Fetch token transfer activity including sender, receiver, amount, and timestamp +- Identify top holders and analyze token distribution +- Ask natural language questions about token data without writing smart contract calls +- Access historical transfer data to analyze token movement over time + +The Token MCP server provides [Claude](/ai-suite/token-api-mcp/claude/), [Cline](/ai-suite/token-api-mcp/cline/), and [Cursor](/ai-suite/token-api-mcp/cursor/) with direct, conversational access to onchain token data. diff --git a/website/src/pages/pl/resources/_meta.js b/website/src/pages/pl/resources/_meta.js index aa8e2d0ec6a8..38c56cf56c43 100644 --- a/website/src/pages/pl/resources/_meta.js +++ b/website/src/pages/pl/resources/_meta.js @@ -7,5 +7,4 @@ export default { roles: titles.roles ?? '', 'migration-guides': titles['migration-guides'] ?? '', 'subgraph-studio-faq': '', - 'claude-mcp': '', } diff --git a/website/src/pages/pl/resources/claude-mcp.mdx b/website/src/pages/pl/resources/claude-mcp.mdx deleted file mode 100644 index 44ed075cffda..000000000000 --- a/website/src/pages/pl/resources/claude-mcp.mdx +++ /dev/null @@ -1,122 +0,0 @@ ---- -title: Claude MCP ---- - -This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. - -## What You Can Do - -With these integrations, you can: - -- **Token API**: Access token and wallet information across multiple blockchains -- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries - -## Prerequisites - -- [Node.js](https://nodejs.org/en/download/) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed -- API keys: - - Token API key from [The Graph Market](https://thegraph.market/) - - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -## Configuration Steps - -### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** - -Paths by operating system: - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -### 2. Add Configuration - -Replace the contents of the existing config file with: - -```json -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "ACCESS_TOKEN" - } - }, - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Keys - -Replace: - -- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) -- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -### 4. Save and Restart - -- Save the configuration file -- Restart Claude Desktop - -### 5. Add The Graph Resources in Claude - -After configuration: - -1. Start a new conversation in Claude Desktop -2. Click on the context menu (top right) -3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP - -> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. - -### 6. Run Queries - -Here are some example queries you can try after setting up the resources: - -### Subgraph Queries - -``` -What are the top pools in Uniswap? -``` - -``` -Who are the top Delegators of The Graph Protocol? -``` - -``` -Please make a bar chart for the number of active loans in Compound for the last 7 days -``` - -### Token API Queries - -``` -Show me the current price of ETH -``` - -``` -What are the top tokens by market cap on Ethereum? -``` - -``` -Analyze this wallet address: 0x... -``` - -## Troubleshooting - -If you encounter issues: - -1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal -2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file -3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs -4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop diff --git a/website/src/pages/pl/subgraphs/_meta.js b/website/src/pages/pl/subgraphs/_meta.js index 4365293ffc72..45841d5f3355 100644 --- a/website/src/pages/pl/subgraphs/_meta.js +++ b/website/src/pages/pl/subgraphs/_meta.js @@ -6,7 +6,6 @@ export default { querying: titles.querying ?? '', developing: titles.developing ?? '', billing: '', - mcp: titles.mcp ?? '', guides: titles.guides, 'best-practices': titles['best-practices'], 'fair-use-policy': '', diff --git a/website/src/pages/pl/subgraphs/mcp/_meta.js b/website/src/pages/pl/subgraphs/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/pl/subgraphs/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/pl/subgraphs/mcp/claude.mdx b/website/src/pages/pl/subgraphs/mcp/claude.mdx deleted file mode 100644 index 027b272cb942..000000000000 --- a/website/src/pages/pl/subgraphs/mcp/claude.mdx +++ /dev/null @@ -1,179 +0,0 @@ ---- -title: Claude Desktop ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. - -## What You Can Do - -The Subgraph MCP integration enables you to: - -- Access the GraphQL schema for any Subgraph on The Graph Network -- Execute GraphQL queries against any Subgraph deployment -- Find top Subgraph deployments for a given keyword or contract address -- Get 30-day query volume for Subgraph deployments -- Ask natural language questions about Subgraph data without writing GraphQL queries manually - -## Prerequisites - -- [Node.js](https://nodejs.org/en) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) - -## Installation Options - -### Option 1: Using npx (Recommended) - -#### Configuration Steps using npx - -#### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Settings** > **Developer** > **Edit Config** - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -#### 2. Add Configuration - -Paste the following settings into your config file: - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -#### 3. Add Your Gateway API Key - -Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). - -#### 4. Save and Restart - -Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. - -### Option 2: Building from Source - -#### Requirements - -- Rust (latest stable version recommended: 1.75+) - ```bash - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - ``` - Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). - -#### Installation Steps - -1. **Clone and Build the Repository** - - ```bash - git clone git@github.com:graphops/subgraph-mcp.git - cd subgraph-mcp - cargo build --release - ``` - -2. **Find the Command Path** - - After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - - Run `pwd` to get the full path - - Combine the output with `/target/release/subgraph-mcp` - -3. **Configure Claude Desktop** - - Open your `claude_desktop_config.json` file as described above and add: - - ```json - { - "mcpServers": { - "subgraph": { - "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", - "env": { - "GATEWAY_API_KEY": "your-api-key-here" - } - } - } - } - ``` - - Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. - -## Using The Graph Resource in Claude - -After configuring Claude Desktop: - -1. Restart Claude Desktop -2. Start a new conversation -3. Click on the context menu (top right) -4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context - -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. - -## Troubleshooting - -To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal -- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments -- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees - -## Key Identifier Types - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -``` -Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one -``` diff --git a/website/src/pages/pl/subgraphs/mcp/cline.mdx b/website/src/pages/pl/subgraphs/mcp/cline.mdx deleted file mode 100644 index 156221d9a127..000000000000 --- a/website/src/pages/pl/subgraphs/mcp/cline.mdx +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: Cline ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. - -## Prerequisites - -- [Cline](https://cline.bot/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `cline_mcp_settings.json` file. - -> **MCP Servers** > **Installed** > **Configure MCP Servers** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -## Using The Graph Resource in Cline - -After configuring Cline: - -1. Restart Cline -2. Start a new conversation -3. Enable the Subgraph MCP from the context menu -4. Add "Subgraph Server Instructions" as a resource to your chat context - -## Available Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/pl/subgraphs/mcp/cursor.mdx b/website/src/pages/pl/subgraphs/mcp/cursor.mdx deleted file mode 100644 index 298f43ece048..000000000000 --- a/website/src/pages/pl/subgraphs/mcp/cursor.mdx +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Cursor ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. - -## Prerequisites - -- [Cursor](https://www.cursor.com/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `~/.cursor/mcp.json` file. - -> **Cursor Settings** > **MCP** > **Add new global MCP Server** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -### 4. Restart Cursor - -Restart Cursor, and start a new chat. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/pl/substreams/_meta.js b/website/src/pages/pl/substreams/_meta.js index a8ee04618eae..658bb8c213c6 100644 --- a/website/src/pages/pl/substreams/_meta.js +++ b/website/src/pages/pl/substreams/_meta.js @@ -5,5 +5,4 @@ export default { introduction: '', developing: titles.developing ?? '', publishing: '', - sps: titles.sps ?? '', } diff --git a/website/src/pages/pl/token-api/_meta-titles.json b/website/src/pages/pl/token-api/_meta-titles.json index 7ed31e0af95d..3108ecd3ebfd 100644 --- a/website/src/pages/pl/token-api/_meta-titles.json +++ b/website/src/pages/pl/token-api/_meta-titles.json @@ -1,6 +1,7 @@ { "mcp": "MCP", "evm": "EVM Endpoints", + "svm": "SVM Endpoints", "monitoring": "Monitoring Endpoints", "faq": "FAQ" } diff --git a/website/src/pages/pl/token-api/_meta.js b/website/src/pages/pl/token-api/_meta.js index f67576d7f612..fb7f7334ea0c 100644 --- a/website/src/pages/pl/token-api/_meta.js +++ b/website/src/pages/pl/token-api/_meta.js @@ -2,8 +2,8 @@ import titles from './_meta-titles.json' export default { 'quick-start': '', - mcp: titles.mcp ?? '', evm: titles.evm ?? '', + svm: titles.svm ?? '', monitoring: titles.monitoring ?? '', faq: '', } diff --git a/website/src/pages/pl/token-api/mcp/_meta.js b/website/src/pages/pl/token-api/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/pl/token-api/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/pl/token-api/svm/_meta.js b/website/src/pages/pl/token-api/svm/_meta.js new file mode 100644 index 000000000000..1a48b82fcbf1 --- /dev/null +++ b/website/src/pages/pl/token-api/svm/_meta.js @@ -0,0 +1,5 @@ +export default { + 'get-balances-svm': '', + 'get-transfers-svm': '', + 'get-swaps-svm': '', +} diff --git a/website/src/pages/pl/token-api/svm/get-balances-svm.mdx b/website/src/pages/pl/token-api/svm/get-balances-svm.mdx new file mode 100644 index 000000000000..c2946c190bf9 --- /dev/null +++ b/website/src/pages/pl/token-api/svm/get-balances-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Balances +template: + type: openApi + apiId: tokenApi + operationId: getBalancesSvm +--- + +Provides Solana tokens balances by token account address. diff --git a/website/src/pages/pl/token-api/svm/get-swaps-svm.mdx b/website/src/pages/pl/token-api/svm/get-swaps-svm.mdx new file mode 100644 index 000000000000..95282a38ac9f --- /dev/null +++ b/website/src/pages/pl/token-api/svm/get-swaps-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsSvm +--- + +Provides Raydium swap events. diff --git a/website/src/pages/pl/token-api/svm/get-transfers-svm.mdx b/website/src/pages/pl/token-api/svm/get-transfers-svm.mdx new file mode 100644 index 000000000000..5335cdddf418 --- /dev/null +++ b/website/src/pages/pl/token-api/svm/get-transfers-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersSvm +--- + +Provides SVM transfer events. diff --git a/website/src/pages/pt/ai-suite/_meta-titles.json b/website/src/pages/pt/ai-suite/_meta-titles.json new file mode 100644 index 000000000000..5eb482a7092b --- /dev/null +++ b/website/src/pages/pt/ai-suite/_meta-titles.json @@ -0,0 +1,6 @@ +{ + "graph-assistant": "Graph Assistant", + "ai-introduction": "The Graph's AI", + "subgraph-mcp": "Subgraph MCP", + "token-api-mcp": "Token API MCP" +} diff --git a/website/src/pages/pt/ai-suite/_meta.js b/website/src/pages/pt/ai-suite/_meta.js new file mode 100644 index 000000000000..c9e51dfd35fb --- /dev/null +++ b/website/src/pages/pt/ai-suite/_meta.js @@ -0,0 +1,8 @@ +import titles from './_meta-titles.json' + +export default { + 'ai-introduction': titles['ai-introduction'], + 'graph-assistant': titles['graph-assistant'], + 'subgraph-mcp': titles['subgraph-mcp'], + 'token-api-mcp': titles['token-api-mcp'], +} diff --git a/website/src/pages/pt/ai-suite/ai-introduction.mdx b/website/src/pages/pt/ai-suite/ai-introduction.mdx new file mode 100644 index 000000000000..d25cc9f77358 --- /dev/null +++ b/website/src/pages/pt/ai-suite/ai-introduction.mdx @@ -0,0 +1,58 @@ +--- +title: The Graph's AI +--- + +Build with speed and scale faster with The Graph's AI. + +## Using AI on The Graph + +Instead of relying on static datasets or centralized APIs, you can now access live blockchain data through our **agentic** app, [Graph Assistant](/ai-suite/graph-assistant/introduction/), and use our AI-native tooling, [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/), and [Token API MCP](/ai-suite/token-api-mcp/introduction/). + +### Why Use Onchain Data with AI? + +Using onchain data with AI unlocks powerful new ways to interact with and understand blockchain ecosystems. + +- **AI for Non-Technical End Users**: AI can turn complex onchain data into accessible insights. Assistants powered by AI enable you to explore and analyze blockchain data without coding. +- **AI for Developers**: You can use AI to interact directly with The Graph's data through your agents or build AI-powered applications on top of it. This streamlines development and opens up more intuitive, dynamic use cases. + +## AI for Non-Technical/End Users + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) is a powerful **agentic** application that empowers users to easily interact with blockchain data. Ask questions in simple, natural language and get rich, AI powered insights. Both technical developers and non-technical product teams can move faster, make smarter decisions, and gain a clearer understanding than ever before. + +### Benefits of Using Graph Assistant + +- **Natural language Input**: You don't need to write complex queries or sift through dashboards. Simply ask your question in plain English and get clear, structured results. +- **Multi-source support**: Works across multiple Subgraphs and Token API. The Assistant automatically determines which data source to use, so you don't have to switch tools or manage endpoints. +- **Schema-free access**: You don't need to understand the schema. You can refer to tokens, protocols, dates, or addresses using natural language. The Assistant takes care of the rest. + +### Conversational Querying with Graph Assistant + +**Example queries:** + +- "List the top-5 swaps by USD value in the last 24 hours." +- "Give me the daily volume on Uniswap." +- "List the 20 most recently registered .eth names." + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) will eventually be a one-stop shop for interacting with The Graph. Right now, it's an agentic AI app that uses state-of-the-art AI techniques, LLMs, and MCPs to understand and answer your questions about [Subgraphs](/subgraphs/developing/subgraphs/) and [Token API](/token-api/quick-start/) data. + +## AI for Developers + +### Enable Natural Language Access to Onchain Data + +[Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) servers connect to Claude, Cline, and Cursor. They enable models to understand, query, and interact with structured onchain data using natural language. MCPs remove the need to write low-level queries or interact with APIs directly. + +### Subgraph MCP + +The [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/) server connects models to Subgraphs on The Graph Network. It allows language models to explore Subgraph schemas, execute GraphQL queries, find relevant Subgraphs by keyword or contract, and surface usage metrics using natural language. + +### Token API MCP + +The [Token API MCP](/ai-suite/token-api-mcp/introduction/) MCP server enables models to access onchain token data. It supports querying token metadata, wallet balances, transfer history, and top token holders through simple prompts. + +#### Benefits of Using Subgraph and Token API MCPs + +- Query Subgraphs and token data using natural language +- Access GraphQL schemas and token metadata without manual queries +- Find Subgraphs by keyword or contract and check 30-day usage +- Retrieve real-time data from The Graph and onchain token sources +- Get wallet balances, transfer history, and top token holders diff --git a/website/src/pages/pt/ai-suite/graph-assistant/_meta.js b/website/src/pages/pt/ai-suite/graph-assistant/_meta.js new file mode 100644 index 000000000000..74da5e0686a7 --- /dev/null +++ b/website/src/pages/pt/ai-suite/graph-assistant/_meta.js @@ -0,0 +1,6 @@ +export default { + 'quick-start': '', + introduction: '', + 'how-to-guide': '', + faq: '', +} diff --git a/website/src/pages/pt/ai-suite/graph-assistant/faq.mdx b/website/src/pages/pt/ai-suite/graph-assistant/faq.mdx new file mode 100644 index 000000000000..8addf9935524 --- /dev/null +++ b/website/src/pages/pt/ai-suite/graph-assistant/faq.mdx @@ -0,0 +1,26 @@ +--- +title: Graph Assistant FAQ +sidebarTitle: 'FAQ' +--- + +This page summarizes some of the most common questions for developers using Graph Assistant. + +1. What is The Graph Assistant? + +The Graph Assistant is an AI-powered chat interface that lets you query blockchain data in plain English. Under the hood, it translates your questions into GraphQL calls against Subgraphs and the Token API, then returns results, no coding required. + +2. What is an agentic application? + +An agentic application combines AI-driven reasoning with external data sources or APIs to take autonomous actions on your behalf. In this case, Graph Assistant acts as an “agent” that interprets your natural-language prompts, builds and dispatches GraphQL queries, and formats the results so that you don't need to write or manage queries yourself. + +3. Which networks and data does Graph Assistant support? + +The Assistant has access to Subgraphs across multiple chains. If a Subgraph is published to The Graph Network and is being indexed, the Assistant can automatically route queries to it. The Assistant also has access to the Token API on Ethereum Mainnet, BSC, Unichain, Arbitrum-One, Optimism, and Polygon. + +4. Is there a usage limit or quota? + +Yes, 10 questions per hour. + +5. What if the Assistant can't interpret my question? + +When the Assistant fails to parse your intent (for example, ambiguous token name, missing context, or an unsupported request), it will prompt you for clarification. For instance, it might ask, “Did you mean XYZ on Ethereum or XYZ on Arbitrum?” or “Please specify a date range for this query.” If you continue to see parsing errors, check that you're using correct token symbols or specifying networks and time frames clearly. diff --git a/website/src/pages/pt/ai-suite/graph-assistant/how-to-guide.mdx b/website/src/pages/pt/ai-suite/graph-assistant/how-to-guide.mdx new file mode 100644 index 000000000000..463130894ad8 --- /dev/null +++ b/website/src/pages/pt/ai-suite/graph-assistant/how-to-guide.mdx @@ -0,0 +1,56 @@ +--- +title: How To Use The Graph Assistant +sidebarTitle: 'How-to Guide' +--- + +## Overview + +You type a natural language question into the chat interface, such as: + +```yaml +'On Uniswap, return the top-10 pools by total value locked in USD.' +``` + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the underlying agents. Do not share sensitive, personal, or private information. + +### Behind the Scenes + +The Assistant: + +1. Interprets your intent +2. Maps it to the correct Subgraphs or Token API endpoint +3. Executes optimized queries +4. Returns clean, structured results + +You don't need to write queries or understand a Subgraph's schema, you simply ask. + +### Example Use Cases + +**Protocol Analytics** + +- “Compare daily active users on Aave vs. Compound in May 2025.” +- “Show me the total value locked (TVL) for XYZDAO over the last quarter.” + +**Token Insights** + +- “What are the top 10 tokens by market cap on Ethereum right now?” +- “How many XYZ did I receive between May 1 and May 15?” + +**Historical Data Retrieval** + +- “Fetch the token price history of XYZ for the last six months.” +- “What was the average gas price on Ethereum during April?” + +**Portfolio Monitoring** + +- “List my wallet’s current token balances and their USD equivalents.” +- “Calculate profit/loss on XYZ since xyz date.” + +**Cross-Chain Comparison** + +- “Show me the 7-day trading volume of XYZ on Ethereum vs. Polygon.” +- “How many XYZ swaps occurred on Arbitrum yesterday?” + +To get started follow the [quickstart](/ai-suite/graph-assistant/quick-start/) and explore its capabilities. diff --git a/website/src/pages/pt/ai-suite/graph-assistant/introduction.mdx b/website/src/pages/pt/ai-suite/graph-assistant/introduction.mdx new file mode 100644 index 000000000000..65fdf0f96028 --- /dev/null +++ b/website/src/pages/pt/ai-suite/graph-assistant/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +[Graph Assistant](https://thegraph.com/graph-assistant) (Beta) gives instant, code-free access to blockchain data, transforming natural language into precise, AI-powered queries without the need to code. + +## Overview + +[Graph Assistant](https://thegraph.com/graph-assistant) is an advanced, [agentic](/en/ai-suite/graph-assistant/faq/) easy-to-use chat interface for querying blockchain data using natural language. Unlike a basic chatbot, Graph Assistant can understand your intent, build complex queries, and execute them automatically. This gives you rich, AI-powered insights from onchain data without writing any code. + +- **Automatically** interprets user intent, generates precise queries, executes them via The Graph's Subgraphs and Token API, and presents structured, AI-powered answers without requiring any code. +- **Removes** the technical complexity found in traditional dashboards or chatbots. It provides composable insights directly from indexed Subgraphs and Token datasets. + +## Core Features + +| Feature | Description | +| --- | --- | +| **Friendly Interface** | Conversational access to blockchain data via natural language. You simply ask questions, the Assistant fetches the answer, and renders results. | +| **Backed by Subgraphs** | Uses subgraphs to index protocol-specific data like transactions, events, and protocol metrics. | +| **Backed by Token API** | Uses Token API for token-level information like balances, transfers, and metadata. | +| **No Setup Required** | No need to configure data sources or write queries. | +| **Automatic Query Building** | The Assistant performs complex queries such as fetching historical token volumes, protocol analytics, or cross-chain data and handles filtering, pagination, and joins across Subgraphs automatically. | + +## Help Shape What's Next + +This is in **beta**, and community input is essential. If you have ideas, questions, or run into anything unexpected, we'd love to hear from you: + +- Join the community on [Discord](https://discord.com/invite/graphprotocol): Provide feedback and stay in the loop with other builders. You'll be able to join the `#graph-assistant` channel to share your experience directly. +- Interested in going deeper? Reach out to become a dedicated beta tester so your specific use case can be better supported. diff --git a/website/src/pages/pt/ai-suite/graph-assistant/quick-start.mdx b/website/src/pages/pt/ai-suite/graph-assistant/quick-start.mdx new file mode 100644 index 000000000000..13f8478b8d2b --- /dev/null +++ b/website/src/pages/pt/ai-suite/graph-assistant/quick-start.mdx @@ -0,0 +1,44 @@ +--- +title: Quick Start +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +This guide provides step-by-step instructions for getting started with Graph Assistant quickly. + +## Step-by Step + +### Step 1. Create an Account + +Go to: [Graph Assistant](https://thegraph.com/graph-assistant) + +- Click Sign Up (or Log In if you already have an account). +- Use your Google, GitHub, X, email or wallet credentials to log in. +- No additional setup is required. + +### Step 2. Open the Assistant Chat + +After logging in: + +- You'll see Graph Assistant's interface. +- At the bottom of the page, you will find a chat input bar. This is where you will interact with the Assistant. + +### Step 3: Ask Your First Question + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +In the input bar, type a natural-language query (everyday language). + +Example: + +```yaml +Show me the 24-hour trading volume of XYZ token on Ethereum +``` + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the AI interface. Do not share sensitive, personal, or private information. + +The Assistant will: + +- Digest your question +- Fetch onchain data using Subgraphs or the Token API +- Return a clean, formatted response with the data you need diff --git a/website/src/pages/pt/ai-suite/subgraph-mcp/_meta.js b/website/src/pages/pt/ai-suite/subgraph-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/pt/ai-suite/subgraph-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/pt/ai-suite/subgraph-mcp/claude.mdx b/website/src/pages/pt/ai-suite/subgraph-mcp/claude.mdx new file mode 100644 index 000000000000..ff3caa4e3e7f --- /dev/null +++ b/website/src/pages/pt/ai-suite/subgraph-mcp/claude.mdx @@ -0,0 +1,169 @@ +--- +title: Claude Desktop +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data via natural language conversations with Claude. + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` diff --git a/website/src/pages/pt/ai-suite/subgraph-mcp/cline.mdx b/website/src/pages/pt/ai-suite/subgraph-mcp/cline.mdx new file mode 100644 index 000000000000..eb8044bfe991 --- /dev/null +++ b/website/src/pages/pt/ai-suite/subgraph-mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "Subgraph Server Instructions" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/pt/ai-suite/subgraph-mcp/cursor.mdx b/website/src/pages/pt/ai-suite/subgraph-mcp/cursor.mdx new file mode 100644 index 000000000000..6291caf4b06b --- /dev/null +++ b/website/src/pages/pt/ai-suite/subgraph-mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/pt/ai-suite/subgraph-mcp/introduction.mdx b/website/src/pages/pt/ai-suite/subgraph-mcp/introduction.mdx new file mode 100644 index 000000000000..da1272cf9a36 --- /dev/null +++ b/website/src/pages/pt/ai-suite/subgraph-mcp/introduction.mdx @@ -0,0 +1,22 @@ +--- +title: Subgraph MCP Introduction +sidebarTitle: 'Introduction' +--- + +Subgraph MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +It presents The Graph's Subgraph data through a set of MCP tools that any MCP-compatible client can call. With these tools, clients can search for relevant Subgraphs, inspect GraphQL schemas, and run queries against specific deployments on The Graph Network all within a single, standardized interface. + +The server itself does not hold a language model. Instead, it translates incoming MCP requests into Subgraph queries and returns the structured results, allowing the client's LLM to transform a natural-language prompt into actionable blockchain data. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Subgraph ecosystem. + +## What You Can Do + +- Access GraphQL schemas for any Subgraph on The Graph Network +- Run GraphQL queries on any Subgraph deployment +- Discover top Subgraph deployments by keyword or contract address +- Retrieve 30-day query volumes for Subgraph deployments +- Ask questions about Subgraph data without writing GraphQL manually + +The Subgraph MCP server allows smooth integration with [Claude](/ai-suite/subgraph-mcp/claude/), [Cline](/ai-suite/subgraph-mcp/cline/), or [Cursor](/ai-suite/subgraph-mcp/cursor/), making blockchain data queries with The Graph Network a conversational experience. diff --git a/website/src/pages/pt/ai-suite/token-api-mcp/_meta.js b/website/src/pages/pt/ai-suite/token-api-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/pt/ai-suite/token-api-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/pt/ai-suite/token-api-mcp/claude.mdx b/website/src/pages/pt/ai-suite/token-api-mcp/claude.mdx new file mode 100644 index 000000000000..3e21f4d7e165 --- /dev/null +++ b/website/src/pages/pt/ai-suite/token-api-mcp/claude.mdx @@ -0,0 +1,58 @@ +--- +title: Using Claude Desktop to Access the Token API via MCP +sidebarTitle: Claude Desktop +--- + +## Prerequisites + +- [Claude Desktop](https://claude.ai/download) installed. +- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. +- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. + +![Screenshot of Claude Desktop's settings panel showing the MCP server configuration option.](/img/claude-preview-token-api.png) + +## Configuration + +Create or edit your `claude_desktop_config.json` file. + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +```json label="claude_desktop_config.json" +{ + "mcpServers": { + "token-api": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "" + } + } + } +} +``` + +## Troubleshooting + +To enable logs for the MCP, use the `--verbose true` option. + +### ENOENT + +![Error dialog in Claude Desktop showing 'ENOENT' system error, indicating the npx/bunx command wasn't found in the system path.](/img/claude-ENOENT.png) + +Try to use the full path of the command instead: + +- Run `which npx` or `which bunx` to get the path of the command. +- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). + +### Server disconnected + +![Connection error notification in Claude Desktop displaying 'Server disconnected' message.](/img/claude-server-disconnect.png) + +Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. + +> You can always have a look at the full logs under `Claude/logs/mcp.log` and `Claude/logs/mcp-server-pinax.log` for more details. diff --git a/website/src/pages/pt/ai-suite/token-api-mcp/cline.mdx b/website/src/pages/pt/ai-suite/token-api-mcp/cline.mdx new file mode 100644 index 000000000000..e885d21366cd --- /dev/null +++ b/website/src/pages/pt/ai-suite/token-api-mcp/cline.mdx @@ -0,0 +1,52 @@ +--- +title: Using Cline to Access the Token API via MCP +sidebarTitle: Cline +--- + +## Prerequisites + +- [Cline](https://cline.bot/) installed. +- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. +- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. + +![Screenshot of Cline's MCP server configuration interface displaying the JSON settings file with mcp-pinax server details visible.](/img/cline-preview-token-api.png) + +## Configuration + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +```json label="cline_mcp_settings.json" +{ + "mcpServers": { + "mcp-pinax": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "" + } + } + } +} +``` + +## Troubleshooting + +To enable logs for the MCP, use the `--verbose true` option. + +### ENOENT + +![Cline error dialog showing 'ENOENT' system alert.](/img/cline-error.png) + +Try to use the full path of the command instead: + +- Run `which npx` or `which bunx` to get the path of the command. +- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). + +### Server disconnected + +![Cline connection error notification displaying server disconnection warning.](/img/cline-missing-variables.png) + +Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/pt/ai-suite/token-api-mcp/cursor.mdx b/website/src/pages/pt/ai-suite/token-api-mcp/cursor.mdx new file mode 100644 index 000000000000..68fe2fdb201c --- /dev/null +++ b/website/src/pages/pt/ai-suite/token-api-mcp/cursor.mdx @@ -0,0 +1,50 @@ +--- +title: Using Cursor to Access the Token API via MCP +sidebarTitle: Cursor +--- + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed. +- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. +- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. + +![Screenshot of Cursor's MCP configuration panel.](/img/cursor-preview-token-api.png) + +## Configuration + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +```json label="mcp.json" +{ + "mcpServers": { + "mcp-pinax": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "" + } + } + } +} +``` + +## Troubleshooting + +![Cursor IDE error notification that reads, "Failed to create client"](/img/cursor-error.png) + +To enable logs for the MCP, use the `--verbose true` option. + +### ENOENT + +Try to use the full path of the command instead: + +- Run `which npx` or `which bunx` to get the path of the command. +- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). + +### Server disconnected + +Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/pt/ai-suite/token-api-mcp/introduction.mdx b/website/src/pages/pt/ai-suite/token-api-mcp/introduction.mdx new file mode 100644 index 000000000000..b61ad0a1c485 --- /dev/null +++ b/website/src/pages/pt/ai-suite/token-api-mcp/introduction.mdx @@ -0,0 +1,23 @@ +--- +title: Token API MCP Introduction +sidebarTitle: 'Introduction' +--- + +Token API MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +This MCP server makes on-chain token data, including metadata, balances, transfers, and holder statistics, accessible through a set of MCP tools. Any compatible client can use these tools to fetch and analyze token information through a standardized interface. It connects to The Graph's hosted Token API database, enabling AI assistants to query real-time blockchain data using natural language requests that get translated into optimized SQL queries. + +The server itself does not host any language model. It simply converts MCP calls into data look-ups and returns structured results, letting the client's own LLM incorporate the results. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Token API data. + +## What You Can Do + +- Retrieve token metadata including name, symbol, decimals, total supply, and contract address +- Get token balances for any wallet address holding a supported ERC-20 token +- Fetch token transfer activity including sender, receiver, amount, and timestamp +- Identify top holders and analyze token distribution +- Ask natural language questions about token data without writing smart contract calls +- Access historical transfer data to analyze token movement over time + +The Token MCP server provides [Claude](/ai-suite/token-api-mcp/claude/), [Cline](/ai-suite/token-api-mcp/cline/), and [Cursor](/ai-suite/token-api-mcp/cursor/) with direct, conversational access to onchain token data. diff --git a/website/src/pages/pt/resources/_meta.js b/website/src/pages/pt/resources/_meta.js index aa8e2d0ec6a8..38c56cf56c43 100644 --- a/website/src/pages/pt/resources/_meta.js +++ b/website/src/pages/pt/resources/_meta.js @@ -7,5 +7,4 @@ export default { roles: titles.roles ?? '', 'migration-guides': titles['migration-guides'] ?? '', 'subgraph-studio-faq': '', - 'claude-mcp': '', } diff --git a/website/src/pages/pt/resources/claude-mcp.mdx b/website/src/pages/pt/resources/claude-mcp.mdx deleted file mode 100644 index 44ed075cffda..000000000000 --- a/website/src/pages/pt/resources/claude-mcp.mdx +++ /dev/null @@ -1,122 +0,0 @@ ---- -title: Claude MCP ---- - -This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. - -## What You Can Do - -With these integrations, you can: - -- **Token API**: Access token and wallet information across multiple blockchains -- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries - -## Prerequisites - -- [Node.js](https://nodejs.org/en/download/) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed -- API keys: - - Token API key from [The Graph Market](https://thegraph.market/) - - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -## Configuration Steps - -### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** - -Paths by operating system: - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -### 2. Add Configuration - -Replace the contents of the existing config file with: - -```json -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "ACCESS_TOKEN" - } - }, - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Keys - -Replace: - -- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) -- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -### 4. Save and Restart - -- Save the configuration file -- Restart Claude Desktop - -### 5. Add The Graph Resources in Claude - -After configuration: - -1. Start a new conversation in Claude Desktop -2. Click on the context menu (top right) -3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP - -> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. - -### 6. Run Queries - -Here are some example queries you can try after setting up the resources: - -### Subgraph Queries - -``` -What are the top pools in Uniswap? -``` - -``` -Who are the top Delegators of The Graph Protocol? -``` - -``` -Please make a bar chart for the number of active loans in Compound for the last 7 days -``` - -### Token API Queries - -``` -Show me the current price of ETH -``` - -``` -What are the top tokens by market cap on Ethereum? -``` - -``` -Analyze this wallet address: 0x... -``` - -## Troubleshooting - -If you encounter issues: - -1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal -2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file -3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs -4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop diff --git a/website/src/pages/pt/subgraphs/_meta.js b/website/src/pages/pt/subgraphs/_meta.js index 4365293ffc72..45841d5f3355 100644 --- a/website/src/pages/pt/subgraphs/_meta.js +++ b/website/src/pages/pt/subgraphs/_meta.js @@ -6,7 +6,6 @@ export default { querying: titles.querying ?? '', developing: titles.developing ?? '', billing: '', - mcp: titles.mcp ?? '', guides: titles.guides, 'best-practices': titles['best-practices'], 'fair-use-policy': '', diff --git a/website/src/pages/pt/subgraphs/mcp/_meta.js b/website/src/pages/pt/subgraphs/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/pt/subgraphs/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/pt/subgraphs/mcp/claude.mdx b/website/src/pages/pt/subgraphs/mcp/claude.mdx deleted file mode 100644 index 027b272cb942..000000000000 --- a/website/src/pages/pt/subgraphs/mcp/claude.mdx +++ /dev/null @@ -1,179 +0,0 @@ ---- -title: Claude Desktop ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. - -## What You Can Do - -The Subgraph MCP integration enables you to: - -- Access the GraphQL schema for any Subgraph on The Graph Network -- Execute GraphQL queries against any Subgraph deployment -- Find top Subgraph deployments for a given keyword or contract address -- Get 30-day query volume for Subgraph deployments -- Ask natural language questions about Subgraph data without writing GraphQL queries manually - -## Prerequisites - -- [Node.js](https://nodejs.org/en) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) - -## Installation Options - -### Option 1: Using npx (Recommended) - -#### Configuration Steps using npx - -#### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Settings** > **Developer** > **Edit Config** - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -#### 2. Add Configuration - -Paste the following settings into your config file: - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -#### 3. Add Your Gateway API Key - -Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). - -#### 4. Save and Restart - -Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. - -### Option 2: Building from Source - -#### Requirements - -- Rust (latest stable version recommended: 1.75+) - ```bash - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - ``` - Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). - -#### Installation Steps - -1. **Clone and Build the Repository** - - ```bash - git clone git@github.com:graphops/subgraph-mcp.git - cd subgraph-mcp - cargo build --release - ``` - -2. **Find the Command Path** - - After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - - Run `pwd` to get the full path - - Combine the output with `/target/release/subgraph-mcp` - -3. **Configure Claude Desktop** - - Open your `claude_desktop_config.json` file as described above and add: - - ```json - { - "mcpServers": { - "subgraph": { - "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", - "env": { - "GATEWAY_API_KEY": "your-api-key-here" - } - } - } - } - ``` - - Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. - -## Using The Graph Resource in Claude - -After configuring Claude Desktop: - -1. Restart Claude Desktop -2. Start a new conversation -3. Click on the context menu (top right) -4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context - -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. - -## Troubleshooting - -To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal -- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments -- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees - -## Key Identifier Types - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -``` -Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one -``` diff --git a/website/src/pages/pt/subgraphs/mcp/cline.mdx b/website/src/pages/pt/subgraphs/mcp/cline.mdx deleted file mode 100644 index 156221d9a127..000000000000 --- a/website/src/pages/pt/subgraphs/mcp/cline.mdx +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: Cline ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. - -## Prerequisites - -- [Cline](https://cline.bot/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `cline_mcp_settings.json` file. - -> **MCP Servers** > **Installed** > **Configure MCP Servers** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -## Using The Graph Resource in Cline - -After configuring Cline: - -1. Restart Cline -2. Start a new conversation -3. Enable the Subgraph MCP from the context menu -4. Add "Subgraph Server Instructions" as a resource to your chat context - -## Available Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/pt/subgraphs/mcp/cursor.mdx b/website/src/pages/pt/subgraphs/mcp/cursor.mdx deleted file mode 100644 index 298f43ece048..000000000000 --- a/website/src/pages/pt/subgraphs/mcp/cursor.mdx +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Cursor ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. - -## Prerequisites - -- [Cursor](https://www.cursor.com/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `~/.cursor/mcp.json` file. - -> **Cursor Settings** > **MCP** > **Add new global MCP Server** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -### 4. Restart Cursor - -Restart Cursor, and start a new chat. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/pt/substreams/_meta.js b/website/src/pages/pt/substreams/_meta.js index a8ee04618eae..658bb8c213c6 100644 --- a/website/src/pages/pt/substreams/_meta.js +++ b/website/src/pages/pt/substreams/_meta.js @@ -5,5 +5,4 @@ export default { introduction: '', developing: titles.developing ?? '', publishing: '', - sps: titles.sps ?? '', } diff --git a/website/src/pages/pt/token-api/_meta-titles.json b/website/src/pages/pt/token-api/_meta-titles.json index 8f6b7851ce8a..c00f5979dc95 100644 --- a/website/src/pages/pt/token-api/_meta-titles.json +++ b/website/src/pages/pt/token-api/_meta-titles.json @@ -1,6 +1,7 @@ { "mcp": "MCP", "evm": "EVM Endpoints", + "svm": "SVM Endpoints", "monitoring": "Monitoring Endpoints", "faq": "Perguntas Frequentes" } diff --git a/website/src/pages/pt/token-api/_meta.js b/website/src/pages/pt/token-api/_meta.js index f67576d7f612..fb7f7334ea0c 100644 --- a/website/src/pages/pt/token-api/_meta.js +++ b/website/src/pages/pt/token-api/_meta.js @@ -2,8 +2,8 @@ import titles from './_meta-titles.json' export default { 'quick-start': '', - mcp: titles.mcp ?? '', evm: titles.evm ?? '', + svm: titles.svm ?? '', monitoring: titles.monitoring ?? '', faq: '', } diff --git a/website/src/pages/pt/token-api/mcp/_meta.js b/website/src/pages/pt/token-api/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/pt/token-api/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/pt/token-api/mcp/claude.mdx b/website/src/pages/pt/token-api/mcp/claude.mdx deleted file mode 100644 index d515884fb9a3..000000000000 --- a/website/src/pages/pt/token-api/mcp/claude.mdx +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: Using Claude Desktop to Access the Token API via MCP -sidebarTitle: Claude Desktop ---- - -## Pré-requisitos - -- [Claude Desktop](https://claude.ai/download) installed. -- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. -- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. - -![Screenshot of Claude Desktop's settings panel showing the MCP server configuration option.](/img/claude-preview-token-api.png) - -## Configuração - -Create or edit your `claude_desktop_config.json` file. - -> **Settings** > **Developer** > **Edit Config** - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -```json label="claude_desktop_config.json" -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -## Troubleshooting - -To enable logs for the MCP, use the `--verbose true` option. - -### ENOENT - -![Error dialog in Claude Desktop showing 'ENOENT' system error, indicating the npx/bunx command wasn't found in the system path.](/img/claude-ENOENT.png) - -Try to use the full path of the command instead: - -- Run `which npx` or `which bunx` to get the path of the command. -- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). - -### Server disconnected - -![Connection error notification in Claude Desktop displaying 'Server disconnected' message.](/img/claude-server-disconnect.png) - -Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. - -> You can always have a look at the full logs under `Claude/logs/mcp.log` and `Claude/logs/mcp-server-pinax.log` for more details. diff --git a/website/src/pages/pt/token-api/mcp/cline.mdx b/website/src/pages/pt/token-api/mcp/cline.mdx deleted file mode 100644 index c782519bc6ed..000000000000 --- a/website/src/pages/pt/token-api/mcp/cline.mdx +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Using Cline to Access the Token API via MCP -sidebarTitle: Cline ---- - -## Pré-requisitos - -- [Cline](https://cline.bot/) installed. -- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. -- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. - -![Screenshot of Cline's MCP server configuration interface displaying the JSON settings file with mcp-pinax server details visible.](/img/cline-preview-token-api.png) - -## Configuração - -Create or edit your `cline_mcp_settings.json` file. - -> **MCP Servers** > **Installed** > **Configure MCP Servers** - -```json label="cline_mcp_settings.json" -{ - "mcpServers": { - "mcp-pinax": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -## Troubleshooting - -To enable logs for the MCP, use the `--verbose true` option. - -### ENOENT - -![Cline error dialog showing 'ENOENT' system alert.](/img/cline-error.png) - -Try to use the full path of the command instead: - -- Run `which npx` or `which bunx` to get the path of the command. -- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). - -### Server disconnected - -![Cline connection error notification displaying server disconnection warning.](/img/cline-missing-variables.png) - -Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/pt/token-api/mcp/cursor.mdx b/website/src/pages/pt/token-api/mcp/cursor.mdx deleted file mode 100644 index 9ce73d91a9eb..000000000000 --- a/website/src/pages/pt/token-api/mcp/cursor.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Using Cursor to Access the Token API via MCP -sidebarTitle: Cursor ---- - -## Pré-requisitos - -- [Cursor](https://www.cursor.com/) installed. -- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. -- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. - -![Screenshot of Cursor's MCP configuration panel.](/img/cursor-preview-token-api.png) - -## Configuração - -Create or edit your `~/.cursor/mcp.json` file. - -> **Cursor Settings** > **MCP** > **Add new global MCP Server** - -```json label="mcp.json" -{ - "mcpServers": { - "mcp-pinax": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -## Troubleshooting - -![Cursor IDE error notification that reads, "Failed to create client"](/img/cursor-error.png) - -To enable logs for the MCP, use the `--verbose true` option. - -### ENOENT - -Try to use the full path of the command instead: - -- Run `which npx` or `which bunx` to get the path of the command. -- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). - -### Server disconnected - -Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/pt/token-api/svm/_meta.js b/website/src/pages/pt/token-api/svm/_meta.js new file mode 100644 index 000000000000..1a48b82fcbf1 --- /dev/null +++ b/website/src/pages/pt/token-api/svm/_meta.js @@ -0,0 +1,5 @@ +export default { + 'get-balances-svm': '', + 'get-transfers-svm': '', + 'get-swaps-svm': '', +} diff --git a/website/src/pages/pt/token-api/svm/get-balances-svm.mdx b/website/src/pages/pt/token-api/svm/get-balances-svm.mdx new file mode 100644 index 000000000000..c2946c190bf9 --- /dev/null +++ b/website/src/pages/pt/token-api/svm/get-balances-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Balances +template: + type: openApi + apiId: tokenApi + operationId: getBalancesSvm +--- + +Provides Solana tokens balances by token account address. diff --git a/website/src/pages/pt/token-api/svm/get-swaps-svm.mdx b/website/src/pages/pt/token-api/svm/get-swaps-svm.mdx new file mode 100644 index 000000000000..95282a38ac9f --- /dev/null +++ b/website/src/pages/pt/token-api/svm/get-swaps-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsSvm +--- + +Provides Raydium swap events. diff --git a/website/src/pages/pt/token-api/svm/get-transfers-svm.mdx b/website/src/pages/pt/token-api/svm/get-transfers-svm.mdx new file mode 100644 index 000000000000..5335cdddf418 --- /dev/null +++ b/website/src/pages/pt/token-api/svm/get-transfers-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersSvm +--- + +Provides SVM transfer events. diff --git a/website/src/pages/ro/ai-suite/_meta-titles.json b/website/src/pages/ro/ai-suite/_meta-titles.json new file mode 100644 index 000000000000..5eb482a7092b --- /dev/null +++ b/website/src/pages/ro/ai-suite/_meta-titles.json @@ -0,0 +1,6 @@ +{ + "graph-assistant": "Graph Assistant", + "ai-introduction": "The Graph's AI", + "subgraph-mcp": "Subgraph MCP", + "token-api-mcp": "Token API MCP" +} diff --git a/website/src/pages/ro/ai-suite/_meta.js b/website/src/pages/ro/ai-suite/_meta.js new file mode 100644 index 000000000000..c9e51dfd35fb --- /dev/null +++ b/website/src/pages/ro/ai-suite/_meta.js @@ -0,0 +1,8 @@ +import titles from './_meta-titles.json' + +export default { + 'ai-introduction': titles['ai-introduction'], + 'graph-assistant': titles['graph-assistant'], + 'subgraph-mcp': titles['subgraph-mcp'], + 'token-api-mcp': titles['token-api-mcp'], +} diff --git a/website/src/pages/ro/ai-suite/ai-introduction.mdx b/website/src/pages/ro/ai-suite/ai-introduction.mdx new file mode 100644 index 000000000000..d25cc9f77358 --- /dev/null +++ b/website/src/pages/ro/ai-suite/ai-introduction.mdx @@ -0,0 +1,58 @@ +--- +title: The Graph's AI +--- + +Build with speed and scale faster with The Graph's AI. + +## Using AI on The Graph + +Instead of relying on static datasets or centralized APIs, you can now access live blockchain data through our **agentic** app, [Graph Assistant](/ai-suite/graph-assistant/introduction/), and use our AI-native tooling, [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/), and [Token API MCP](/ai-suite/token-api-mcp/introduction/). + +### Why Use Onchain Data with AI? + +Using onchain data with AI unlocks powerful new ways to interact with and understand blockchain ecosystems. + +- **AI for Non-Technical End Users**: AI can turn complex onchain data into accessible insights. Assistants powered by AI enable you to explore and analyze blockchain data without coding. +- **AI for Developers**: You can use AI to interact directly with The Graph's data through your agents or build AI-powered applications on top of it. This streamlines development and opens up more intuitive, dynamic use cases. + +## AI for Non-Technical/End Users + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) is a powerful **agentic** application that empowers users to easily interact with blockchain data. Ask questions in simple, natural language and get rich, AI powered insights. Both technical developers and non-technical product teams can move faster, make smarter decisions, and gain a clearer understanding than ever before. + +### Benefits of Using Graph Assistant + +- **Natural language Input**: You don't need to write complex queries or sift through dashboards. Simply ask your question in plain English and get clear, structured results. +- **Multi-source support**: Works across multiple Subgraphs and Token API. The Assistant automatically determines which data source to use, so you don't have to switch tools or manage endpoints. +- **Schema-free access**: You don't need to understand the schema. You can refer to tokens, protocols, dates, or addresses using natural language. The Assistant takes care of the rest. + +### Conversational Querying with Graph Assistant + +**Example queries:** + +- "List the top-5 swaps by USD value in the last 24 hours." +- "Give me the daily volume on Uniswap." +- "List the 20 most recently registered .eth names." + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) will eventually be a one-stop shop for interacting with The Graph. Right now, it's an agentic AI app that uses state-of-the-art AI techniques, LLMs, and MCPs to understand and answer your questions about [Subgraphs](/subgraphs/developing/subgraphs/) and [Token API](/token-api/quick-start/) data. + +## AI for Developers + +### Enable Natural Language Access to Onchain Data + +[Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) servers connect to Claude, Cline, and Cursor. They enable models to understand, query, and interact with structured onchain data using natural language. MCPs remove the need to write low-level queries or interact with APIs directly. + +### Subgraph MCP + +The [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/) server connects models to Subgraphs on The Graph Network. It allows language models to explore Subgraph schemas, execute GraphQL queries, find relevant Subgraphs by keyword or contract, and surface usage metrics using natural language. + +### Token API MCP + +The [Token API MCP](/ai-suite/token-api-mcp/introduction/) MCP server enables models to access onchain token data. It supports querying token metadata, wallet balances, transfer history, and top token holders through simple prompts. + +#### Benefits of Using Subgraph and Token API MCPs + +- Query Subgraphs and token data using natural language +- Access GraphQL schemas and token metadata without manual queries +- Find Subgraphs by keyword or contract and check 30-day usage +- Retrieve real-time data from The Graph and onchain token sources +- Get wallet balances, transfer history, and top token holders diff --git a/website/src/pages/ro/ai-suite/graph-assistant/_meta.js b/website/src/pages/ro/ai-suite/graph-assistant/_meta.js new file mode 100644 index 000000000000..74da5e0686a7 --- /dev/null +++ b/website/src/pages/ro/ai-suite/graph-assistant/_meta.js @@ -0,0 +1,6 @@ +export default { + 'quick-start': '', + introduction: '', + 'how-to-guide': '', + faq: '', +} diff --git a/website/src/pages/ro/ai-suite/graph-assistant/faq.mdx b/website/src/pages/ro/ai-suite/graph-assistant/faq.mdx new file mode 100644 index 000000000000..8addf9935524 --- /dev/null +++ b/website/src/pages/ro/ai-suite/graph-assistant/faq.mdx @@ -0,0 +1,26 @@ +--- +title: Graph Assistant FAQ +sidebarTitle: 'FAQ' +--- + +This page summarizes some of the most common questions for developers using Graph Assistant. + +1. What is The Graph Assistant? + +The Graph Assistant is an AI-powered chat interface that lets you query blockchain data in plain English. Under the hood, it translates your questions into GraphQL calls against Subgraphs and the Token API, then returns results, no coding required. + +2. What is an agentic application? + +An agentic application combines AI-driven reasoning with external data sources or APIs to take autonomous actions on your behalf. In this case, Graph Assistant acts as an “agent” that interprets your natural-language prompts, builds and dispatches GraphQL queries, and formats the results so that you don't need to write or manage queries yourself. + +3. Which networks and data does Graph Assistant support? + +The Assistant has access to Subgraphs across multiple chains. If a Subgraph is published to The Graph Network and is being indexed, the Assistant can automatically route queries to it. The Assistant also has access to the Token API on Ethereum Mainnet, BSC, Unichain, Arbitrum-One, Optimism, and Polygon. + +4. Is there a usage limit or quota? + +Yes, 10 questions per hour. + +5. What if the Assistant can't interpret my question? + +When the Assistant fails to parse your intent (for example, ambiguous token name, missing context, or an unsupported request), it will prompt you for clarification. For instance, it might ask, “Did you mean XYZ on Ethereum or XYZ on Arbitrum?” or “Please specify a date range for this query.” If you continue to see parsing errors, check that you're using correct token symbols or specifying networks and time frames clearly. diff --git a/website/src/pages/ro/ai-suite/graph-assistant/how-to-guide.mdx b/website/src/pages/ro/ai-suite/graph-assistant/how-to-guide.mdx new file mode 100644 index 000000000000..463130894ad8 --- /dev/null +++ b/website/src/pages/ro/ai-suite/graph-assistant/how-to-guide.mdx @@ -0,0 +1,56 @@ +--- +title: How To Use The Graph Assistant +sidebarTitle: 'How-to Guide' +--- + +## Overview + +You type a natural language question into the chat interface, such as: + +```yaml +'On Uniswap, return the top-10 pools by total value locked in USD.' +``` + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the underlying agents. Do not share sensitive, personal, or private information. + +### Behind the Scenes + +The Assistant: + +1. Interprets your intent +2. Maps it to the correct Subgraphs or Token API endpoint +3. Executes optimized queries +4. Returns clean, structured results + +You don't need to write queries or understand a Subgraph's schema, you simply ask. + +### Example Use Cases + +**Protocol Analytics** + +- “Compare daily active users on Aave vs. Compound in May 2025.” +- “Show me the total value locked (TVL) for XYZDAO over the last quarter.” + +**Token Insights** + +- “What are the top 10 tokens by market cap on Ethereum right now?” +- “How many XYZ did I receive between May 1 and May 15?” + +**Historical Data Retrieval** + +- “Fetch the token price history of XYZ for the last six months.” +- “What was the average gas price on Ethereum during April?” + +**Portfolio Monitoring** + +- “List my wallet’s current token balances and their USD equivalents.” +- “Calculate profit/loss on XYZ since xyz date.” + +**Cross-Chain Comparison** + +- “Show me the 7-day trading volume of XYZ on Ethereum vs. Polygon.” +- “How many XYZ swaps occurred on Arbitrum yesterday?” + +To get started follow the [quickstart](/ai-suite/graph-assistant/quick-start/) and explore its capabilities. diff --git a/website/src/pages/ro/ai-suite/graph-assistant/introduction.mdx b/website/src/pages/ro/ai-suite/graph-assistant/introduction.mdx new file mode 100644 index 000000000000..65fdf0f96028 --- /dev/null +++ b/website/src/pages/ro/ai-suite/graph-assistant/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +[Graph Assistant](https://thegraph.com/graph-assistant) (Beta) gives instant, code-free access to blockchain data, transforming natural language into precise, AI-powered queries without the need to code. + +## Overview + +[Graph Assistant](https://thegraph.com/graph-assistant) is an advanced, [agentic](/en/ai-suite/graph-assistant/faq/) easy-to-use chat interface for querying blockchain data using natural language. Unlike a basic chatbot, Graph Assistant can understand your intent, build complex queries, and execute them automatically. This gives you rich, AI-powered insights from onchain data without writing any code. + +- **Automatically** interprets user intent, generates precise queries, executes them via The Graph's Subgraphs and Token API, and presents structured, AI-powered answers without requiring any code. +- **Removes** the technical complexity found in traditional dashboards or chatbots. It provides composable insights directly from indexed Subgraphs and Token datasets. + +## Core Features + +| Feature | Description | +| --- | --- | +| **Friendly Interface** | Conversational access to blockchain data via natural language. You simply ask questions, the Assistant fetches the answer, and renders results. | +| **Backed by Subgraphs** | Uses subgraphs to index protocol-specific data like transactions, events, and protocol metrics. | +| **Backed by Token API** | Uses Token API for token-level information like balances, transfers, and metadata. | +| **No Setup Required** | No need to configure data sources or write queries. | +| **Automatic Query Building** | The Assistant performs complex queries such as fetching historical token volumes, protocol analytics, or cross-chain data and handles filtering, pagination, and joins across Subgraphs automatically. | + +## Help Shape What's Next + +This is in **beta**, and community input is essential. If you have ideas, questions, or run into anything unexpected, we'd love to hear from you: + +- Join the community on [Discord](https://discord.com/invite/graphprotocol): Provide feedback and stay in the loop with other builders. You'll be able to join the `#graph-assistant` channel to share your experience directly. +- Interested in going deeper? Reach out to become a dedicated beta tester so your specific use case can be better supported. diff --git a/website/src/pages/ro/ai-suite/graph-assistant/quick-start.mdx b/website/src/pages/ro/ai-suite/graph-assistant/quick-start.mdx new file mode 100644 index 000000000000..13f8478b8d2b --- /dev/null +++ b/website/src/pages/ro/ai-suite/graph-assistant/quick-start.mdx @@ -0,0 +1,44 @@ +--- +title: Quick Start +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +This guide provides step-by-step instructions for getting started with Graph Assistant quickly. + +## Step-by Step + +### Step 1. Create an Account + +Go to: [Graph Assistant](https://thegraph.com/graph-assistant) + +- Click Sign Up (or Log In if you already have an account). +- Use your Google, GitHub, X, email or wallet credentials to log in. +- No additional setup is required. + +### Step 2. Open the Assistant Chat + +After logging in: + +- You'll see Graph Assistant's interface. +- At the bottom of the page, you will find a chat input bar. This is where you will interact with the Assistant. + +### Step 3: Ask Your First Question + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +In the input bar, type a natural-language query (everyday language). + +Example: + +```yaml +Show me the 24-hour trading volume of XYZ token on Ethereum +``` + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the AI interface. Do not share sensitive, personal, or private information. + +The Assistant will: + +- Digest your question +- Fetch onchain data using Subgraphs or the Token API +- Return a clean, formatted response with the data you need diff --git a/website/src/pages/ro/ai-suite/subgraph-mcp/_meta.js b/website/src/pages/ro/ai-suite/subgraph-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/ro/ai-suite/subgraph-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/ro/ai-suite/subgraph-mcp/claude.mdx b/website/src/pages/ro/ai-suite/subgraph-mcp/claude.mdx new file mode 100644 index 000000000000..ff3caa4e3e7f --- /dev/null +++ b/website/src/pages/ro/ai-suite/subgraph-mcp/claude.mdx @@ -0,0 +1,169 @@ +--- +title: Claude Desktop +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data via natural language conversations with Claude. + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` diff --git a/website/src/pages/ro/ai-suite/subgraph-mcp/cline.mdx b/website/src/pages/ro/ai-suite/subgraph-mcp/cline.mdx new file mode 100644 index 000000000000..eb8044bfe991 --- /dev/null +++ b/website/src/pages/ro/ai-suite/subgraph-mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "Subgraph Server Instructions" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/ro/ai-suite/subgraph-mcp/cursor.mdx b/website/src/pages/ro/ai-suite/subgraph-mcp/cursor.mdx new file mode 100644 index 000000000000..6291caf4b06b --- /dev/null +++ b/website/src/pages/ro/ai-suite/subgraph-mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/ro/ai-suite/subgraph-mcp/introduction.mdx b/website/src/pages/ro/ai-suite/subgraph-mcp/introduction.mdx new file mode 100644 index 000000000000..da1272cf9a36 --- /dev/null +++ b/website/src/pages/ro/ai-suite/subgraph-mcp/introduction.mdx @@ -0,0 +1,22 @@ +--- +title: Subgraph MCP Introduction +sidebarTitle: 'Introduction' +--- + +Subgraph MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +It presents The Graph's Subgraph data through a set of MCP tools that any MCP-compatible client can call. With these tools, clients can search for relevant Subgraphs, inspect GraphQL schemas, and run queries against specific deployments on The Graph Network all within a single, standardized interface. + +The server itself does not hold a language model. Instead, it translates incoming MCP requests into Subgraph queries and returns the structured results, allowing the client's LLM to transform a natural-language prompt into actionable blockchain data. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Subgraph ecosystem. + +## What You Can Do + +- Access GraphQL schemas for any Subgraph on The Graph Network +- Run GraphQL queries on any Subgraph deployment +- Discover top Subgraph deployments by keyword or contract address +- Retrieve 30-day query volumes for Subgraph deployments +- Ask questions about Subgraph data without writing GraphQL manually + +The Subgraph MCP server allows smooth integration with [Claude](/ai-suite/subgraph-mcp/claude/), [Cline](/ai-suite/subgraph-mcp/cline/), or [Cursor](/ai-suite/subgraph-mcp/cursor/), making blockchain data queries with The Graph Network a conversational experience. diff --git a/website/src/pages/ro/ai-suite/token-api-mcp/_meta.js b/website/src/pages/ro/ai-suite/token-api-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/ro/ai-suite/token-api-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/ro/ai-suite/token-api-mcp/claude.mdx b/website/src/pages/ro/ai-suite/token-api-mcp/claude.mdx new file mode 100644 index 000000000000..3e21f4d7e165 --- /dev/null +++ b/website/src/pages/ro/ai-suite/token-api-mcp/claude.mdx @@ -0,0 +1,58 @@ +--- +title: Using Claude Desktop to Access the Token API via MCP +sidebarTitle: Claude Desktop +--- + +## Prerequisites + +- [Claude Desktop](https://claude.ai/download) installed. +- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. +- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. + +![Screenshot of Claude Desktop's settings panel showing the MCP server configuration option.](/img/claude-preview-token-api.png) + +## Configuration + +Create or edit your `claude_desktop_config.json` file. + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +```json label="claude_desktop_config.json" +{ + "mcpServers": { + "token-api": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "" + } + } + } +} +``` + +## Troubleshooting + +To enable logs for the MCP, use the `--verbose true` option. + +### ENOENT + +![Error dialog in Claude Desktop showing 'ENOENT' system error, indicating the npx/bunx command wasn't found in the system path.](/img/claude-ENOENT.png) + +Try to use the full path of the command instead: + +- Run `which npx` or `which bunx` to get the path of the command. +- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). + +### Server disconnected + +![Connection error notification in Claude Desktop displaying 'Server disconnected' message.](/img/claude-server-disconnect.png) + +Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. + +> You can always have a look at the full logs under `Claude/logs/mcp.log` and `Claude/logs/mcp-server-pinax.log` for more details. diff --git a/website/src/pages/ro/ai-suite/token-api-mcp/cline.mdx b/website/src/pages/ro/ai-suite/token-api-mcp/cline.mdx new file mode 100644 index 000000000000..e885d21366cd --- /dev/null +++ b/website/src/pages/ro/ai-suite/token-api-mcp/cline.mdx @@ -0,0 +1,52 @@ +--- +title: Using Cline to Access the Token API via MCP +sidebarTitle: Cline +--- + +## Prerequisites + +- [Cline](https://cline.bot/) installed. +- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. +- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. + +![Screenshot of Cline's MCP server configuration interface displaying the JSON settings file with mcp-pinax server details visible.](/img/cline-preview-token-api.png) + +## Configuration + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +```json label="cline_mcp_settings.json" +{ + "mcpServers": { + "mcp-pinax": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "" + } + } + } +} +``` + +## Troubleshooting + +To enable logs for the MCP, use the `--verbose true` option. + +### ENOENT + +![Cline error dialog showing 'ENOENT' system alert.](/img/cline-error.png) + +Try to use the full path of the command instead: + +- Run `which npx` or `which bunx` to get the path of the command. +- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). + +### Server disconnected + +![Cline connection error notification displaying server disconnection warning.](/img/cline-missing-variables.png) + +Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/ro/ai-suite/token-api-mcp/cursor.mdx b/website/src/pages/ro/ai-suite/token-api-mcp/cursor.mdx new file mode 100644 index 000000000000..68fe2fdb201c --- /dev/null +++ b/website/src/pages/ro/ai-suite/token-api-mcp/cursor.mdx @@ -0,0 +1,50 @@ +--- +title: Using Cursor to Access the Token API via MCP +sidebarTitle: Cursor +--- + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed. +- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. +- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. + +![Screenshot of Cursor's MCP configuration panel.](/img/cursor-preview-token-api.png) + +## Configuration + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +```json label="mcp.json" +{ + "mcpServers": { + "mcp-pinax": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "" + } + } + } +} +``` + +## Troubleshooting + +![Cursor IDE error notification that reads, "Failed to create client"](/img/cursor-error.png) + +To enable logs for the MCP, use the `--verbose true` option. + +### ENOENT + +Try to use the full path of the command instead: + +- Run `which npx` or `which bunx` to get the path of the command. +- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). + +### Server disconnected + +Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/ro/ai-suite/token-api-mcp/introduction.mdx b/website/src/pages/ro/ai-suite/token-api-mcp/introduction.mdx new file mode 100644 index 000000000000..b61ad0a1c485 --- /dev/null +++ b/website/src/pages/ro/ai-suite/token-api-mcp/introduction.mdx @@ -0,0 +1,23 @@ +--- +title: Token API MCP Introduction +sidebarTitle: 'Introduction' +--- + +Token API MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +This MCP server makes on-chain token data, including metadata, balances, transfers, and holder statistics, accessible through a set of MCP tools. Any compatible client can use these tools to fetch and analyze token information through a standardized interface. It connects to The Graph's hosted Token API database, enabling AI assistants to query real-time blockchain data using natural language requests that get translated into optimized SQL queries. + +The server itself does not host any language model. It simply converts MCP calls into data look-ups and returns structured results, letting the client's own LLM incorporate the results. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Token API data. + +## What You Can Do + +- Retrieve token metadata including name, symbol, decimals, total supply, and contract address +- Get token balances for any wallet address holding a supported ERC-20 token +- Fetch token transfer activity including sender, receiver, amount, and timestamp +- Identify top holders and analyze token distribution +- Ask natural language questions about token data without writing smart contract calls +- Access historical transfer data to analyze token movement over time + +The Token MCP server provides [Claude](/ai-suite/token-api-mcp/claude/), [Cline](/ai-suite/token-api-mcp/cline/), and [Cursor](/ai-suite/token-api-mcp/cursor/) with direct, conversational access to onchain token data. diff --git a/website/src/pages/ro/resources/_meta.js b/website/src/pages/ro/resources/_meta.js index aa8e2d0ec6a8..38c56cf56c43 100644 --- a/website/src/pages/ro/resources/_meta.js +++ b/website/src/pages/ro/resources/_meta.js @@ -7,5 +7,4 @@ export default { roles: titles.roles ?? '', 'migration-guides': titles['migration-guides'] ?? '', 'subgraph-studio-faq': '', - 'claude-mcp': '', } diff --git a/website/src/pages/ro/resources/claude-mcp.mdx b/website/src/pages/ro/resources/claude-mcp.mdx deleted file mode 100644 index 44ed075cffda..000000000000 --- a/website/src/pages/ro/resources/claude-mcp.mdx +++ /dev/null @@ -1,122 +0,0 @@ ---- -title: Claude MCP ---- - -This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. - -## What You Can Do - -With these integrations, you can: - -- **Token API**: Access token and wallet information across multiple blockchains -- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries - -## Prerequisites - -- [Node.js](https://nodejs.org/en/download/) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed -- API keys: - - Token API key from [The Graph Market](https://thegraph.market/) - - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -## Configuration Steps - -### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** - -Paths by operating system: - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -### 2. Add Configuration - -Replace the contents of the existing config file with: - -```json -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "ACCESS_TOKEN" - } - }, - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Keys - -Replace: - -- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) -- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -### 4. Save and Restart - -- Save the configuration file -- Restart Claude Desktop - -### 5. Add The Graph Resources in Claude - -After configuration: - -1. Start a new conversation in Claude Desktop -2. Click on the context menu (top right) -3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP - -> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. - -### 6. Run Queries - -Here are some example queries you can try after setting up the resources: - -### Subgraph Queries - -``` -What are the top pools in Uniswap? -``` - -``` -Who are the top Delegators of The Graph Protocol? -``` - -``` -Please make a bar chart for the number of active loans in Compound for the last 7 days -``` - -### Token API Queries - -``` -Show me the current price of ETH -``` - -``` -What are the top tokens by market cap on Ethereum? -``` - -``` -Analyze this wallet address: 0x... -``` - -## Troubleshooting - -If you encounter issues: - -1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal -2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file -3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs -4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop diff --git a/website/src/pages/ro/subgraphs/_meta.js b/website/src/pages/ro/subgraphs/_meta.js index 4365293ffc72..45841d5f3355 100644 --- a/website/src/pages/ro/subgraphs/_meta.js +++ b/website/src/pages/ro/subgraphs/_meta.js @@ -6,7 +6,6 @@ export default { querying: titles.querying ?? '', developing: titles.developing ?? '', billing: '', - mcp: titles.mcp ?? '', guides: titles.guides, 'best-practices': titles['best-practices'], 'fair-use-policy': '', diff --git a/website/src/pages/ro/subgraphs/mcp/_meta.js b/website/src/pages/ro/subgraphs/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/ro/subgraphs/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/ro/subgraphs/mcp/claude.mdx b/website/src/pages/ro/subgraphs/mcp/claude.mdx deleted file mode 100644 index 027b272cb942..000000000000 --- a/website/src/pages/ro/subgraphs/mcp/claude.mdx +++ /dev/null @@ -1,179 +0,0 @@ ---- -title: Claude Desktop ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. - -## What You Can Do - -The Subgraph MCP integration enables you to: - -- Access the GraphQL schema for any Subgraph on The Graph Network -- Execute GraphQL queries against any Subgraph deployment -- Find top Subgraph deployments for a given keyword or contract address -- Get 30-day query volume for Subgraph deployments -- Ask natural language questions about Subgraph data without writing GraphQL queries manually - -## Prerequisites - -- [Node.js](https://nodejs.org/en) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) - -## Installation Options - -### Option 1: Using npx (Recommended) - -#### Configuration Steps using npx - -#### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Settings** > **Developer** > **Edit Config** - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -#### 2. Add Configuration - -Paste the following settings into your config file: - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -#### 3. Add Your Gateway API Key - -Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). - -#### 4. Save and Restart - -Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. - -### Option 2: Building from Source - -#### Requirements - -- Rust (latest stable version recommended: 1.75+) - ```bash - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - ``` - Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). - -#### Installation Steps - -1. **Clone and Build the Repository** - - ```bash - git clone git@github.com:graphops/subgraph-mcp.git - cd subgraph-mcp - cargo build --release - ``` - -2. **Find the Command Path** - - After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - - Run `pwd` to get the full path - - Combine the output with `/target/release/subgraph-mcp` - -3. **Configure Claude Desktop** - - Open your `claude_desktop_config.json` file as described above and add: - - ```json - { - "mcpServers": { - "subgraph": { - "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", - "env": { - "GATEWAY_API_KEY": "your-api-key-here" - } - } - } - } - ``` - - Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. - -## Using The Graph Resource in Claude - -After configuring Claude Desktop: - -1. Restart Claude Desktop -2. Start a new conversation -3. Click on the context menu (top right) -4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context - -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. - -## Troubleshooting - -To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal -- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments -- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees - -## Key Identifier Types - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -``` -Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one -``` diff --git a/website/src/pages/ro/subgraphs/mcp/cline.mdx b/website/src/pages/ro/subgraphs/mcp/cline.mdx deleted file mode 100644 index 156221d9a127..000000000000 --- a/website/src/pages/ro/subgraphs/mcp/cline.mdx +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: Cline ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. - -## Prerequisites - -- [Cline](https://cline.bot/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `cline_mcp_settings.json` file. - -> **MCP Servers** > **Installed** > **Configure MCP Servers** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -## Using The Graph Resource in Cline - -After configuring Cline: - -1. Restart Cline -2. Start a new conversation -3. Enable the Subgraph MCP from the context menu -4. Add "Subgraph Server Instructions" as a resource to your chat context - -## Available Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/ro/subgraphs/mcp/cursor.mdx b/website/src/pages/ro/subgraphs/mcp/cursor.mdx deleted file mode 100644 index 298f43ece048..000000000000 --- a/website/src/pages/ro/subgraphs/mcp/cursor.mdx +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Cursor ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. - -## Prerequisites - -- [Cursor](https://www.cursor.com/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `~/.cursor/mcp.json` file. - -> **Cursor Settings** > **MCP** > **Add new global MCP Server** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -### 4. Restart Cursor - -Restart Cursor, and start a new chat. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/ro/substreams/_meta.js b/website/src/pages/ro/substreams/_meta.js index a8ee04618eae..658bb8c213c6 100644 --- a/website/src/pages/ro/substreams/_meta.js +++ b/website/src/pages/ro/substreams/_meta.js @@ -5,5 +5,4 @@ export default { introduction: '', developing: titles.developing ?? '', publishing: '', - sps: titles.sps ?? '', } diff --git a/website/src/pages/ro/token-api/_meta-titles.json b/website/src/pages/ro/token-api/_meta-titles.json index 7ed31e0af95d..3108ecd3ebfd 100644 --- a/website/src/pages/ro/token-api/_meta-titles.json +++ b/website/src/pages/ro/token-api/_meta-titles.json @@ -1,6 +1,7 @@ { "mcp": "MCP", "evm": "EVM Endpoints", + "svm": "SVM Endpoints", "monitoring": "Monitoring Endpoints", "faq": "FAQ" } diff --git a/website/src/pages/ro/token-api/_meta.js b/website/src/pages/ro/token-api/_meta.js index f67576d7f612..fb7f7334ea0c 100644 --- a/website/src/pages/ro/token-api/_meta.js +++ b/website/src/pages/ro/token-api/_meta.js @@ -2,8 +2,8 @@ import titles from './_meta-titles.json' export default { 'quick-start': '', - mcp: titles.mcp ?? '', evm: titles.evm ?? '', + svm: titles.svm ?? '', monitoring: titles.monitoring ?? '', faq: '', } diff --git a/website/src/pages/ro/token-api/mcp/_meta.js b/website/src/pages/ro/token-api/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/ro/token-api/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/ro/token-api/svm/_meta.js b/website/src/pages/ro/token-api/svm/_meta.js new file mode 100644 index 000000000000..1a48b82fcbf1 --- /dev/null +++ b/website/src/pages/ro/token-api/svm/_meta.js @@ -0,0 +1,5 @@ +export default { + 'get-balances-svm': '', + 'get-transfers-svm': '', + 'get-swaps-svm': '', +} diff --git a/website/src/pages/ro/token-api/svm/get-balances-svm.mdx b/website/src/pages/ro/token-api/svm/get-balances-svm.mdx new file mode 100644 index 000000000000..c2946c190bf9 --- /dev/null +++ b/website/src/pages/ro/token-api/svm/get-balances-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Balances +template: + type: openApi + apiId: tokenApi + operationId: getBalancesSvm +--- + +Provides Solana tokens balances by token account address. diff --git a/website/src/pages/ro/token-api/svm/get-swaps-svm.mdx b/website/src/pages/ro/token-api/svm/get-swaps-svm.mdx new file mode 100644 index 000000000000..95282a38ac9f --- /dev/null +++ b/website/src/pages/ro/token-api/svm/get-swaps-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsSvm +--- + +Provides Raydium swap events. diff --git a/website/src/pages/ro/token-api/svm/get-transfers-svm.mdx b/website/src/pages/ro/token-api/svm/get-transfers-svm.mdx new file mode 100644 index 000000000000..5335cdddf418 --- /dev/null +++ b/website/src/pages/ro/token-api/svm/get-transfers-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersSvm +--- + +Provides SVM transfer events. diff --git a/website/src/pages/ru/ai-suite/_meta-titles.json b/website/src/pages/ru/ai-suite/_meta-titles.json new file mode 100644 index 000000000000..5eb482a7092b --- /dev/null +++ b/website/src/pages/ru/ai-suite/_meta-titles.json @@ -0,0 +1,6 @@ +{ + "graph-assistant": "Graph Assistant", + "ai-introduction": "The Graph's AI", + "subgraph-mcp": "Subgraph MCP", + "token-api-mcp": "Token API MCP" +} diff --git a/website/src/pages/ru/ai-suite/_meta.js b/website/src/pages/ru/ai-suite/_meta.js new file mode 100644 index 000000000000..c9e51dfd35fb --- /dev/null +++ b/website/src/pages/ru/ai-suite/_meta.js @@ -0,0 +1,8 @@ +import titles from './_meta-titles.json' + +export default { + 'ai-introduction': titles['ai-introduction'], + 'graph-assistant': titles['graph-assistant'], + 'subgraph-mcp': titles['subgraph-mcp'], + 'token-api-mcp': titles['token-api-mcp'], +} diff --git a/website/src/pages/ru/ai-suite/ai-introduction.mdx b/website/src/pages/ru/ai-suite/ai-introduction.mdx new file mode 100644 index 000000000000..d25cc9f77358 --- /dev/null +++ b/website/src/pages/ru/ai-suite/ai-introduction.mdx @@ -0,0 +1,58 @@ +--- +title: The Graph's AI +--- + +Build with speed and scale faster with The Graph's AI. + +## Using AI on The Graph + +Instead of relying on static datasets or centralized APIs, you can now access live blockchain data through our **agentic** app, [Graph Assistant](/ai-suite/graph-assistant/introduction/), and use our AI-native tooling, [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/), and [Token API MCP](/ai-suite/token-api-mcp/introduction/). + +### Why Use Onchain Data with AI? + +Using onchain data with AI unlocks powerful new ways to interact with and understand blockchain ecosystems. + +- **AI for Non-Technical End Users**: AI can turn complex onchain data into accessible insights. Assistants powered by AI enable you to explore and analyze blockchain data without coding. +- **AI for Developers**: You can use AI to interact directly with The Graph's data through your agents or build AI-powered applications on top of it. This streamlines development and opens up more intuitive, dynamic use cases. + +## AI for Non-Technical/End Users + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) is a powerful **agentic** application that empowers users to easily interact with blockchain data. Ask questions in simple, natural language and get rich, AI powered insights. Both technical developers and non-technical product teams can move faster, make smarter decisions, and gain a clearer understanding than ever before. + +### Benefits of Using Graph Assistant + +- **Natural language Input**: You don't need to write complex queries or sift through dashboards. Simply ask your question in plain English and get clear, structured results. +- **Multi-source support**: Works across multiple Subgraphs and Token API. The Assistant automatically determines which data source to use, so you don't have to switch tools or manage endpoints. +- **Schema-free access**: You don't need to understand the schema. You can refer to tokens, protocols, dates, or addresses using natural language. The Assistant takes care of the rest. + +### Conversational Querying with Graph Assistant + +**Example queries:** + +- "List the top-5 swaps by USD value in the last 24 hours." +- "Give me the daily volume on Uniswap." +- "List the 20 most recently registered .eth names." + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) will eventually be a one-stop shop for interacting with The Graph. Right now, it's an agentic AI app that uses state-of-the-art AI techniques, LLMs, and MCPs to understand and answer your questions about [Subgraphs](/subgraphs/developing/subgraphs/) and [Token API](/token-api/quick-start/) data. + +## AI for Developers + +### Enable Natural Language Access to Onchain Data + +[Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) servers connect to Claude, Cline, and Cursor. They enable models to understand, query, and interact with structured onchain data using natural language. MCPs remove the need to write low-level queries or interact with APIs directly. + +### Subgraph MCP + +The [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/) server connects models to Subgraphs on The Graph Network. It allows language models to explore Subgraph schemas, execute GraphQL queries, find relevant Subgraphs by keyword or contract, and surface usage metrics using natural language. + +### Token API MCP + +The [Token API MCP](/ai-suite/token-api-mcp/introduction/) MCP server enables models to access onchain token data. It supports querying token metadata, wallet balances, transfer history, and top token holders through simple prompts. + +#### Benefits of Using Subgraph and Token API MCPs + +- Query Subgraphs and token data using natural language +- Access GraphQL schemas and token metadata without manual queries +- Find Subgraphs by keyword or contract and check 30-day usage +- Retrieve real-time data from The Graph and onchain token sources +- Get wallet balances, transfer history, and top token holders diff --git a/website/src/pages/ru/ai-suite/graph-assistant/_meta.js b/website/src/pages/ru/ai-suite/graph-assistant/_meta.js new file mode 100644 index 000000000000..74da5e0686a7 --- /dev/null +++ b/website/src/pages/ru/ai-suite/graph-assistant/_meta.js @@ -0,0 +1,6 @@ +export default { + 'quick-start': '', + introduction: '', + 'how-to-guide': '', + faq: '', +} diff --git a/website/src/pages/ru/ai-suite/graph-assistant/faq.mdx b/website/src/pages/ru/ai-suite/graph-assistant/faq.mdx new file mode 100644 index 000000000000..8addf9935524 --- /dev/null +++ b/website/src/pages/ru/ai-suite/graph-assistant/faq.mdx @@ -0,0 +1,26 @@ +--- +title: Graph Assistant FAQ +sidebarTitle: 'FAQ' +--- + +This page summarizes some of the most common questions for developers using Graph Assistant. + +1. What is The Graph Assistant? + +The Graph Assistant is an AI-powered chat interface that lets you query blockchain data in plain English. Under the hood, it translates your questions into GraphQL calls against Subgraphs and the Token API, then returns results, no coding required. + +2. What is an agentic application? + +An agentic application combines AI-driven reasoning with external data sources or APIs to take autonomous actions on your behalf. In this case, Graph Assistant acts as an “agent” that interprets your natural-language prompts, builds and dispatches GraphQL queries, and formats the results so that you don't need to write or manage queries yourself. + +3. Which networks and data does Graph Assistant support? + +The Assistant has access to Subgraphs across multiple chains. If a Subgraph is published to The Graph Network and is being indexed, the Assistant can automatically route queries to it. The Assistant also has access to the Token API on Ethereum Mainnet, BSC, Unichain, Arbitrum-One, Optimism, and Polygon. + +4. Is there a usage limit or quota? + +Yes, 10 questions per hour. + +5. What if the Assistant can't interpret my question? + +When the Assistant fails to parse your intent (for example, ambiguous token name, missing context, or an unsupported request), it will prompt you for clarification. For instance, it might ask, “Did you mean XYZ on Ethereum or XYZ on Arbitrum?” or “Please specify a date range for this query.” If you continue to see parsing errors, check that you're using correct token symbols or specifying networks and time frames clearly. diff --git a/website/src/pages/ru/ai-suite/graph-assistant/how-to-guide.mdx b/website/src/pages/ru/ai-suite/graph-assistant/how-to-guide.mdx new file mode 100644 index 000000000000..463130894ad8 --- /dev/null +++ b/website/src/pages/ru/ai-suite/graph-assistant/how-to-guide.mdx @@ -0,0 +1,56 @@ +--- +title: How To Use The Graph Assistant +sidebarTitle: 'How-to Guide' +--- + +## Overview + +You type a natural language question into the chat interface, such as: + +```yaml +'On Uniswap, return the top-10 pools by total value locked in USD.' +``` + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the underlying agents. Do not share sensitive, personal, or private information. + +### Behind the Scenes + +The Assistant: + +1. Interprets your intent +2. Maps it to the correct Subgraphs or Token API endpoint +3. Executes optimized queries +4. Returns clean, structured results + +You don't need to write queries or understand a Subgraph's schema, you simply ask. + +### Example Use Cases + +**Protocol Analytics** + +- “Compare daily active users on Aave vs. Compound in May 2025.” +- “Show me the total value locked (TVL) for XYZDAO over the last quarter.” + +**Token Insights** + +- “What are the top 10 tokens by market cap on Ethereum right now?” +- “How many XYZ did I receive between May 1 and May 15?” + +**Historical Data Retrieval** + +- “Fetch the token price history of XYZ for the last six months.” +- “What was the average gas price on Ethereum during April?” + +**Portfolio Monitoring** + +- “List my wallet’s current token balances and their USD equivalents.” +- “Calculate profit/loss on XYZ since xyz date.” + +**Cross-Chain Comparison** + +- “Show me the 7-day trading volume of XYZ on Ethereum vs. Polygon.” +- “How many XYZ swaps occurred on Arbitrum yesterday?” + +To get started follow the [quickstart](/ai-suite/graph-assistant/quick-start/) and explore its capabilities. diff --git a/website/src/pages/ru/ai-suite/graph-assistant/introduction.mdx b/website/src/pages/ru/ai-suite/graph-assistant/introduction.mdx new file mode 100644 index 000000000000..65fdf0f96028 --- /dev/null +++ b/website/src/pages/ru/ai-suite/graph-assistant/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +[Graph Assistant](https://thegraph.com/graph-assistant) (Beta) gives instant, code-free access to blockchain data, transforming natural language into precise, AI-powered queries without the need to code. + +## Overview + +[Graph Assistant](https://thegraph.com/graph-assistant) is an advanced, [agentic](/en/ai-suite/graph-assistant/faq/) easy-to-use chat interface for querying blockchain data using natural language. Unlike a basic chatbot, Graph Assistant can understand your intent, build complex queries, and execute them automatically. This gives you rich, AI-powered insights from onchain data without writing any code. + +- **Automatically** interprets user intent, generates precise queries, executes them via The Graph's Subgraphs and Token API, and presents structured, AI-powered answers without requiring any code. +- **Removes** the technical complexity found in traditional dashboards or chatbots. It provides composable insights directly from indexed Subgraphs and Token datasets. + +## Core Features + +| Feature | Description | +| --- | --- | +| **Friendly Interface** | Conversational access to blockchain data via natural language. You simply ask questions, the Assistant fetches the answer, and renders results. | +| **Backed by Subgraphs** | Uses subgraphs to index protocol-specific data like transactions, events, and protocol metrics. | +| **Backed by Token API** | Uses Token API for token-level information like balances, transfers, and metadata. | +| **No Setup Required** | No need to configure data sources or write queries. | +| **Automatic Query Building** | The Assistant performs complex queries such as fetching historical token volumes, protocol analytics, or cross-chain data and handles filtering, pagination, and joins across Subgraphs automatically. | + +## Help Shape What's Next + +This is in **beta**, and community input is essential. If you have ideas, questions, or run into anything unexpected, we'd love to hear from you: + +- Join the community on [Discord](https://discord.com/invite/graphprotocol): Provide feedback and stay in the loop with other builders. You'll be able to join the `#graph-assistant` channel to share your experience directly. +- Interested in going deeper? Reach out to become a dedicated beta tester so your specific use case can be better supported. diff --git a/website/src/pages/ru/ai-suite/graph-assistant/quick-start.mdx b/website/src/pages/ru/ai-suite/graph-assistant/quick-start.mdx new file mode 100644 index 000000000000..13f8478b8d2b --- /dev/null +++ b/website/src/pages/ru/ai-suite/graph-assistant/quick-start.mdx @@ -0,0 +1,44 @@ +--- +title: Quick Start +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +This guide provides step-by-step instructions for getting started with Graph Assistant quickly. + +## Step-by Step + +### Step 1. Create an Account + +Go to: [Graph Assistant](https://thegraph.com/graph-assistant) + +- Click Sign Up (or Log In if you already have an account). +- Use your Google, GitHub, X, email or wallet credentials to log in. +- No additional setup is required. + +### Step 2. Open the Assistant Chat + +After logging in: + +- You'll see Graph Assistant's interface. +- At the bottom of the page, you will find a chat input bar. This is where you will interact with the Assistant. + +### Step 3: Ask Your First Question + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +In the input bar, type a natural-language query (everyday language). + +Example: + +```yaml +Show me the 24-hour trading volume of XYZ token on Ethereum +``` + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the AI interface. Do not share sensitive, personal, or private information. + +The Assistant will: + +- Digest your question +- Fetch onchain data using Subgraphs or the Token API +- Return a clean, formatted response with the data you need diff --git a/website/src/pages/ru/ai-suite/subgraph-mcp/_meta.js b/website/src/pages/ru/ai-suite/subgraph-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/ru/ai-suite/subgraph-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/ru/ai-suite/subgraph-mcp/claude.mdx b/website/src/pages/ru/ai-suite/subgraph-mcp/claude.mdx new file mode 100644 index 000000000000..ff3caa4e3e7f --- /dev/null +++ b/website/src/pages/ru/ai-suite/subgraph-mcp/claude.mdx @@ -0,0 +1,169 @@ +--- +title: Claude Desktop +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data via natural language conversations with Claude. + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` diff --git a/website/src/pages/ru/ai-suite/subgraph-mcp/cline.mdx b/website/src/pages/ru/ai-suite/subgraph-mcp/cline.mdx new file mode 100644 index 000000000000..eb8044bfe991 --- /dev/null +++ b/website/src/pages/ru/ai-suite/subgraph-mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "Subgraph Server Instructions" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/ru/ai-suite/subgraph-mcp/cursor.mdx b/website/src/pages/ru/ai-suite/subgraph-mcp/cursor.mdx new file mode 100644 index 000000000000..6291caf4b06b --- /dev/null +++ b/website/src/pages/ru/ai-suite/subgraph-mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/ru/ai-suite/subgraph-mcp/introduction.mdx b/website/src/pages/ru/ai-suite/subgraph-mcp/introduction.mdx new file mode 100644 index 000000000000..da1272cf9a36 --- /dev/null +++ b/website/src/pages/ru/ai-suite/subgraph-mcp/introduction.mdx @@ -0,0 +1,22 @@ +--- +title: Subgraph MCP Introduction +sidebarTitle: 'Introduction' +--- + +Subgraph MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +It presents The Graph's Subgraph data through a set of MCP tools that any MCP-compatible client can call. With these tools, clients can search for relevant Subgraphs, inspect GraphQL schemas, and run queries against specific deployments on The Graph Network all within a single, standardized interface. + +The server itself does not hold a language model. Instead, it translates incoming MCP requests into Subgraph queries and returns the structured results, allowing the client's LLM to transform a natural-language prompt into actionable blockchain data. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Subgraph ecosystem. + +## What You Can Do + +- Access GraphQL schemas for any Subgraph on The Graph Network +- Run GraphQL queries on any Subgraph deployment +- Discover top Subgraph deployments by keyword or contract address +- Retrieve 30-day query volumes for Subgraph deployments +- Ask questions about Subgraph data without writing GraphQL manually + +The Subgraph MCP server allows smooth integration with [Claude](/ai-suite/subgraph-mcp/claude/), [Cline](/ai-suite/subgraph-mcp/cline/), or [Cursor](/ai-suite/subgraph-mcp/cursor/), making blockchain data queries with The Graph Network a conversational experience. diff --git a/website/src/pages/ru/ai-suite/token-api-mcp/_meta.js b/website/src/pages/ru/ai-suite/token-api-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/ru/ai-suite/token-api-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/ru/ai-suite/token-api-mcp/claude.mdx b/website/src/pages/ru/ai-suite/token-api-mcp/claude.mdx new file mode 100644 index 000000000000..3e21f4d7e165 --- /dev/null +++ b/website/src/pages/ru/ai-suite/token-api-mcp/claude.mdx @@ -0,0 +1,58 @@ +--- +title: Using Claude Desktop to Access the Token API via MCP +sidebarTitle: Claude Desktop +--- + +## Prerequisites + +- [Claude Desktop](https://claude.ai/download) installed. +- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. +- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. + +![Screenshot of Claude Desktop's settings panel showing the MCP server configuration option.](/img/claude-preview-token-api.png) + +## Configuration + +Create or edit your `claude_desktop_config.json` file. + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +```json label="claude_desktop_config.json" +{ + "mcpServers": { + "token-api": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "" + } + } + } +} +``` + +## Troubleshooting + +To enable logs for the MCP, use the `--verbose true` option. + +### ENOENT + +![Error dialog in Claude Desktop showing 'ENOENT' system error, indicating the npx/bunx command wasn't found in the system path.](/img/claude-ENOENT.png) + +Try to use the full path of the command instead: + +- Run `which npx` or `which bunx` to get the path of the command. +- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). + +### Server disconnected + +![Connection error notification in Claude Desktop displaying 'Server disconnected' message.](/img/claude-server-disconnect.png) + +Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. + +> You can always have a look at the full logs under `Claude/logs/mcp.log` and `Claude/logs/mcp-server-pinax.log` for more details. diff --git a/website/src/pages/ru/ai-suite/token-api-mcp/cline.mdx b/website/src/pages/ru/ai-suite/token-api-mcp/cline.mdx new file mode 100644 index 000000000000..e885d21366cd --- /dev/null +++ b/website/src/pages/ru/ai-suite/token-api-mcp/cline.mdx @@ -0,0 +1,52 @@ +--- +title: Using Cline to Access the Token API via MCP +sidebarTitle: Cline +--- + +## Prerequisites + +- [Cline](https://cline.bot/) installed. +- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. +- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. + +![Screenshot of Cline's MCP server configuration interface displaying the JSON settings file with mcp-pinax server details visible.](/img/cline-preview-token-api.png) + +## Configuration + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +```json label="cline_mcp_settings.json" +{ + "mcpServers": { + "mcp-pinax": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "" + } + } + } +} +``` + +## Troubleshooting + +To enable logs for the MCP, use the `--verbose true` option. + +### ENOENT + +![Cline error dialog showing 'ENOENT' system alert.](/img/cline-error.png) + +Try to use the full path of the command instead: + +- Run `which npx` or `which bunx` to get the path of the command. +- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). + +### Server disconnected + +![Cline connection error notification displaying server disconnection warning.](/img/cline-missing-variables.png) + +Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/ru/ai-suite/token-api-mcp/cursor.mdx b/website/src/pages/ru/ai-suite/token-api-mcp/cursor.mdx new file mode 100644 index 000000000000..68fe2fdb201c --- /dev/null +++ b/website/src/pages/ru/ai-suite/token-api-mcp/cursor.mdx @@ -0,0 +1,50 @@ +--- +title: Using Cursor to Access the Token API via MCP +sidebarTitle: Cursor +--- + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed. +- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. +- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. + +![Screenshot of Cursor's MCP configuration panel.](/img/cursor-preview-token-api.png) + +## Configuration + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +```json label="mcp.json" +{ + "mcpServers": { + "mcp-pinax": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "" + } + } + } +} +``` + +## Troubleshooting + +![Cursor IDE error notification that reads, "Failed to create client"](/img/cursor-error.png) + +To enable logs for the MCP, use the `--verbose true` option. + +### ENOENT + +Try to use the full path of the command instead: + +- Run `which npx` or `which bunx` to get the path of the command. +- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). + +### Server disconnected + +Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/ru/ai-suite/token-api-mcp/introduction.mdx b/website/src/pages/ru/ai-suite/token-api-mcp/introduction.mdx new file mode 100644 index 000000000000..b61ad0a1c485 --- /dev/null +++ b/website/src/pages/ru/ai-suite/token-api-mcp/introduction.mdx @@ -0,0 +1,23 @@ +--- +title: Token API MCP Introduction +sidebarTitle: 'Introduction' +--- + +Token API MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +This MCP server makes on-chain token data, including metadata, balances, transfers, and holder statistics, accessible through a set of MCP tools. Any compatible client can use these tools to fetch and analyze token information through a standardized interface. It connects to The Graph's hosted Token API database, enabling AI assistants to query real-time blockchain data using natural language requests that get translated into optimized SQL queries. + +The server itself does not host any language model. It simply converts MCP calls into data look-ups and returns structured results, letting the client's own LLM incorporate the results. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Token API data. + +## What You Can Do + +- Retrieve token metadata including name, symbol, decimals, total supply, and contract address +- Get token balances for any wallet address holding a supported ERC-20 token +- Fetch token transfer activity including sender, receiver, amount, and timestamp +- Identify top holders and analyze token distribution +- Ask natural language questions about token data without writing smart contract calls +- Access historical transfer data to analyze token movement over time + +The Token MCP server provides [Claude](/ai-suite/token-api-mcp/claude/), [Cline](/ai-suite/token-api-mcp/cline/), and [Cursor](/ai-suite/token-api-mcp/cursor/) with direct, conversational access to onchain token data. diff --git a/website/src/pages/ru/resources/_meta.js b/website/src/pages/ru/resources/_meta.js index aa8e2d0ec6a8..38c56cf56c43 100644 --- a/website/src/pages/ru/resources/_meta.js +++ b/website/src/pages/ru/resources/_meta.js @@ -7,5 +7,4 @@ export default { roles: titles.roles ?? '', 'migration-guides': titles['migration-guides'] ?? '', 'subgraph-studio-faq': '', - 'claude-mcp': '', } diff --git a/website/src/pages/ru/resources/claude-mcp.mdx b/website/src/pages/ru/resources/claude-mcp.mdx deleted file mode 100644 index 44ed075cffda..000000000000 --- a/website/src/pages/ru/resources/claude-mcp.mdx +++ /dev/null @@ -1,122 +0,0 @@ ---- -title: Claude MCP ---- - -This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. - -## What You Can Do - -With these integrations, you can: - -- **Token API**: Access token and wallet information across multiple blockchains -- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries - -## Prerequisites - -- [Node.js](https://nodejs.org/en/download/) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed -- API keys: - - Token API key from [The Graph Market](https://thegraph.market/) - - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -## Configuration Steps - -### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** - -Paths by operating system: - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -### 2. Add Configuration - -Replace the contents of the existing config file with: - -```json -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "ACCESS_TOKEN" - } - }, - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Keys - -Replace: - -- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) -- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -### 4. Save and Restart - -- Save the configuration file -- Restart Claude Desktop - -### 5. Add The Graph Resources in Claude - -After configuration: - -1. Start a new conversation in Claude Desktop -2. Click on the context menu (top right) -3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP - -> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. - -### 6. Run Queries - -Here are some example queries you can try after setting up the resources: - -### Subgraph Queries - -``` -What are the top pools in Uniswap? -``` - -``` -Who are the top Delegators of The Graph Protocol? -``` - -``` -Please make a bar chart for the number of active loans in Compound for the last 7 days -``` - -### Token API Queries - -``` -Show me the current price of ETH -``` - -``` -What are the top tokens by market cap on Ethereum? -``` - -``` -Analyze this wallet address: 0x... -``` - -## Troubleshooting - -If you encounter issues: - -1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal -2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file -3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs -4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop diff --git a/website/src/pages/ru/subgraphs/_meta.js b/website/src/pages/ru/subgraphs/_meta.js index 4365293ffc72..45841d5f3355 100644 --- a/website/src/pages/ru/subgraphs/_meta.js +++ b/website/src/pages/ru/subgraphs/_meta.js @@ -6,7 +6,6 @@ export default { querying: titles.querying ?? '', developing: titles.developing ?? '', billing: '', - mcp: titles.mcp ?? '', guides: titles.guides, 'best-practices': titles['best-practices'], 'fair-use-policy': '', diff --git a/website/src/pages/ru/subgraphs/mcp/_meta.js b/website/src/pages/ru/subgraphs/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/ru/subgraphs/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/ru/subgraphs/mcp/claude.mdx b/website/src/pages/ru/subgraphs/mcp/claude.mdx deleted file mode 100644 index 027b272cb942..000000000000 --- a/website/src/pages/ru/subgraphs/mcp/claude.mdx +++ /dev/null @@ -1,179 +0,0 @@ ---- -title: Claude Desktop ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. - -## What You Can Do - -The Subgraph MCP integration enables you to: - -- Access the GraphQL schema for any Subgraph on The Graph Network -- Execute GraphQL queries against any Subgraph deployment -- Find top Subgraph deployments for a given keyword or contract address -- Get 30-day query volume for Subgraph deployments -- Ask natural language questions about Subgraph data without writing GraphQL queries manually - -## Prerequisites - -- [Node.js](https://nodejs.org/en) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) - -## Installation Options - -### Option 1: Using npx (Recommended) - -#### Configuration Steps using npx - -#### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Settings** > **Developer** > **Edit Config** - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -#### 2. Add Configuration - -Paste the following settings into your config file: - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -#### 3. Add Your Gateway API Key - -Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). - -#### 4. Save and Restart - -Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. - -### Option 2: Building from Source - -#### Requirements - -- Rust (latest stable version recommended: 1.75+) - ```bash - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - ``` - Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). - -#### Installation Steps - -1. **Clone and Build the Repository** - - ```bash - git clone git@github.com:graphops/subgraph-mcp.git - cd subgraph-mcp - cargo build --release - ``` - -2. **Find the Command Path** - - After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - - Run `pwd` to get the full path - - Combine the output with `/target/release/subgraph-mcp` - -3. **Configure Claude Desktop** - - Open your `claude_desktop_config.json` file as described above and add: - - ```json - { - "mcpServers": { - "subgraph": { - "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", - "env": { - "GATEWAY_API_KEY": "your-api-key-here" - } - } - } - } - ``` - - Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. - -## Using The Graph Resource in Claude - -After configuring Claude Desktop: - -1. Restart Claude Desktop -2. Start a new conversation -3. Click on the context menu (top right) -4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context - -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. - -## Troubleshooting - -To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal -- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments -- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees - -## Key Identifier Types - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -``` -Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one -``` diff --git a/website/src/pages/ru/subgraphs/mcp/cline.mdx b/website/src/pages/ru/subgraphs/mcp/cline.mdx deleted file mode 100644 index 156221d9a127..000000000000 --- a/website/src/pages/ru/subgraphs/mcp/cline.mdx +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: Cline ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. - -## Prerequisites - -- [Cline](https://cline.bot/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `cline_mcp_settings.json` file. - -> **MCP Servers** > **Installed** > **Configure MCP Servers** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -## Using The Graph Resource in Cline - -After configuring Cline: - -1. Restart Cline -2. Start a new conversation -3. Enable the Subgraph MCP from the context menu -4. Add "Subgraph Server Instructions" as a resource to your chat context - -## Available Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/ru/subgraphs/mcp/cursor.mdx b/website/src/pages/ru/subgraphs/mcp/cursor.mdx deleted file mode 100644 index 298f43ece048..000000000000 --- a/website/src/pages/ru/subgraphs/mcp/cursor.mdx +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Cursor ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. - -## Prerequisites - -- [Cursor](https://www.cursor.com/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `~/.cursor/mcp.json` file. - -> **Cursor Settings** > **MCP** > **Add new global MCP Server** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -### 4. Restart Cursor - -Restart Cursor, and start a new chat. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/ru/substreams/_meta.js b/website/src/pages/ru/substreams/_meta.js index a8ee04618eae..658bb8c213c6 100644 --- a/website/src/pages/ru/substreams/_meta.js +++ b/website/src/pages/ru/substreams/_meta.js @@ -5,5 +5,4 @@ export default { introduction: '', developing: titles.developing ?? '', publishing: '', - sps: titles.sps ?? '', } diff --git a/website/src/pages/ru/token-api/_meta-titles.json b/website/src/pages/ru/token-api/_meta-titles.json index e3d12c4a864f..54aff26bf479 100644 --- a/website/src/pages/ru/token-api/_meta-titles.json +++ b/website/src/pages/ru/token-api/_meta-titles.json @@ -1,6 +1,7 @@ { "mcp": "MCP", "evm": "EVM Endpoints", + "svm": "SVM Endpoints", "monitoring": "Monitoring Endpoints", "faq": "Часто задаваемые вопросы" } diff --git a/website/src/pages/ru/token-api/_meta.js b/website/src/pages/ru/token-api/_meta.js index f67576d7f612..fb7f7334ea0c 100644 --- a/website/src/pages/ru/token-api/_meta.js +++ b/website/src/pages/ru/token-api/_meta.js @@ -2,8 +2,8 @@ import titles from './_meta-titles.json' export default { 'quick-start': '', - mcp: titles.mcp ?? '', evm: titles.evm ?? '', + svm: titles.svm ?? '', monitoring: titles.monitoring ?? '', faq: '', } diff --git a/website/src/pages/ru/token-api/mcp/_meta.js b/website/src/pages/ru/token-api/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/ru/token-api/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/ru/token-api/mcp/claude.mdx b/website/src/pages/ru/token-api/mcp/claude.mdx deleted file mode 100644 index be15cbb0fee1..000000000000 --- a/website/src/pages/ru/token-api/mcp/claude.mdx +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: Using Claude Desktop to Access the Token API via MCP -sidebarTitle: Claude Desktop ---- - -## Предварительные требования - -- [Claude Desktop](https://claude.ai/download) installed. -- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. -- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. - -![Screenshot of Claude Desktop's settings panel showing the MCP server configuration option.](/img/claude-preview-token-api.png) - -## Конфигурация - -Create or edit your `claude_desktop_config.json` file. - -> **Settings** > **Developer** > **Edit Config** - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -```json label="claude_desktop_config.json" -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -## Troubleshooting - -To enable logs for the MCP, use the `--verbose true` option. - -### ENOENT - -![Error dialog in Claude Desktop showing 'ENOENT' system error, indicating the npx/bunx command wasn't found in the system path.](/img/claude-ENOENT.png) - -Try to use the full path of the command instead: - -- Run `which npx` or `which bunx` to get the path of the command. -- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). - -### Server disconnected - -![Connection error notification in Claude Desktop displaying 'Server disconnected' message.](/img/claude-server-disconnect.png) - -Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. - -> You can always have a look at the full logs under `Claude/logs/mcp.log` and `Claude/logs/mcp-server-pinax.log` for more details. diff --git a/website/src/pages/ru/token-api/mcp/cline.mdx b/website/src/pages/ru/token-api/mcp/cline.mdx deleted file mode 100644 index b264b1300266..000000000000 --- a/website/src/pages/ru/token-api/mcp/cline.mdx +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Using Cline to Access the Token API via MCP -sidebarTitle: Cline ---- - -## Предварительные требования - -- [Cline](https://cline.bot/) installed. -- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. -- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. - -![Screenshot of Cline's MCP server configuration interface displaying the JSON settings file with mcp-pinax server details visible.](/img/cline-preview-token-api.png) - -## Конфигурация - -Create or edit your `cline_mcp_settings.json` file. - -> **MCP Servers** > **Installed** > **Configure MCP Servers** - -```json label="cline_mcp_settings.json" -{ - "mcpServers": { - "mcp-pinax": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -## Troubleshooting - -To enable logs for the MCP, use the `--verbose true` option. - -### ENOENT - -![Cline error dialog showing 'ENOENT' system alert.](/img/cline-error.png) - -Try to use the full path of the command instead: - -- Run `which npx` or `which bunx` to get the path of the command. -- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). - -### Server disconnected - -![Cline connection error notification displaying server disconnection warning.](/img/cline-missing-variables.png) - -Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/ru/token-api/mcp/cursor.mdx b/website/src/pages/ru/token-api/mcp/cursor.mdx deleted file mode 100644 index 16250c0cae94..000000000000 --- a/website/src/pages/ru/token-api/mcp/cursor.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Using Cursor to Access the Token API via MCP -sidebarTitle: Cursor ---- - -## Предварительные требования - -- [Cursor](https://www.cursor.com/) installed. -- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. -- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. - -![Screenshot of Cursor's MCP configuration panel.](/img/cursor-preview-token-api.png) - -## Конфигурация - -Create or edit your `~/.cursor/mcp.json` file. - -> **Cursor Settings** > **MCP** > **Add new global MCP Server** - -```json label="mcp.json" -{ - "mcpServers": { - "mcp-pinax": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -## Troubleshooting - -![Cursor IDE error notification that reads, "Failed to create client"](/img/cursor-error.png) - -To enable logs for the MCP, use the `--verbose true` option. - -### ENOENT - -Try to use the full path of the command instead: - -- Run `which npx` or `which bunx` to get the path of the command. -- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). - -### Server disconnected - -Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/ru/token-api/svm/_meta.js b/website/src/pages/ru/token-api/svm/_meta.js new file mode 100644 index 000000000000..1a48b82fcbf1 --- /dev/null +++ b/website/src/pages/ru/token-api/svm/_meta.js @@ -0,0 +1,5 @@ +export default { + 'get-balances-svm': '', + 'get-transfers-svm': '', + 'get-swaps-svm': '', +} diff --git a/website/src/pages/ru/token-api/svm/get-balances-svm.mdx b/website/src/pages/ru/token-api/svm/get-balances-svm.mdx new file mode 100644 index 000000000000..c2946c190bf9 --- /dev/null +++ b/website/src/pages/ru/token-api/svm/get-balances-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Balances +template: + type: openApi + apiId: tokenApi + operationId: getBalancesSvm +--- + +Provides Solana tokens balances by token account address. diff --git a/website/src/pages/ru/token-api/svm/get-swaps-svm.mdx b/website/src/pages/ru/token-api/svm/get-swaps-svm.mdx new file mode 100644 index 000000000000..95282a38ac9f --- /dev/null +++ b/website/src/pages/ru/token-api/svm/get-swaps-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsSvm +--- + +Provides Raydium swap events. diff --git a/website/src/pages/ru/token-api/svm/get-transfers-svm.mdx b/website/src/pages/ru/token-api/svm/get-transfers-svm.mdx new file mode 100644 index 000000000000..5335cdddf418 --- /dev/null +++ b/website/src/pages/ru/token-api/svm/get-transfers-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersSvm +--- + +Provides SVM transfer events. diff --git a/website/src/pages/sv/ai-suite/_meta-titles.json b/website/src/pages/sv/ai-suite/_meta-titles.json new file mode 100644 index 000000000000..5eb482a7092b --- /dev/null +++ b/website/src/pages/sv/ai-suite/_meta-titles.json @@ -0,0 +1,6 @@ +{ + "graph-assistant": "Graph Assistant", + "ai-introduction": "The Graph's AI", + "subgraph-mcp": "Subgraph MCP", + "token-api-mcp": "Token API MCP" +} diff --git a/website/src/pages/sv/ai-suite/_meta.js b/website/src/pages/sv/ai-suite/_meta.js new file mode 100644 index 000000000000..c9e51dfd35fb --- /dev/null +++ b/website/src/pages/sv/ai-suite/_meta.js @@ -0,0 +1,8 @@ +import titles from './_meta-titles.json' + +export default { + 'ai-introduction': titles['ai-introduction'], + 'graph-assistant': titles['graph-assistant'], + 'subgraph-mcp': titles['subgraph-mcp'], + 'token-api-mcp': titles['token-api-mcp'], +} diff --git a/website/src/pages/sv/ai-suite/ai-introduction.mdx b/website/src/pages/sv/ai-suite/ai-introduction.mdx new file mode 100644 index 000000000000..d25cc9f77358 --- /dev/null +++ b/website/src/pages/sv/ai-suite/ai-introduction.mdx @@ -0,0 +1,58 @@ +--- +title: The Graph's AI +--- + +Build with speed and scale faster with The Graph's AI. + +## Using AI on The Graph + +Instead of relying on static datasets or centralized APIs, you can now access live blockchain data through our **agentic** app, [Graph Assistant](/ai-suite/graph-assistant/introduction/), and use our AI-native tooling, [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/), and [Token API MCP](/ai-suite/token-api-mcp/introduction/). + +### Why Use Onchain Data with AI? + +Using onchain data with AI unlocks powerful new ways to interact with and understand blockchain ecosystems. + +- **AI for Non-Technical End Users**: AI can turn complex onchain data into accessible insights. Assistants powered by AI enable you to explore and analyze blockchain data without coding. +- **AI for Developers**: You can use AI to interact directly with The Graph's data through your agents or build AI-powered applications on top of it. This streamlines development and opens up more intuitive, dynamic use cases. + +## AI for Non-Technical/End Users + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) is a powerful **agentic** application that empowers users to easily interact with blockchain data. Ask questions in simple, natural language and get rich, AI powered insights. Both technical developers and non-technical product teams can move faster, make smarter decisions, and gain a clearer understanding than ever before. + +### Benefits of Using Graph Assistant + +- **Natural language Input**: You don't need to write complex queries or sift through dashboards. Simply ask your question in plain English and get clear, structured results. +- **Multi-source support**: Works across multiple Subgraphs and Token API. The Assistant automatically determines which data source to use, so you don't have to switch tools or manage endpoints. +- **Schema-free access**: You don't need to understand the schema. You can refer to tokens, protocols, dates, or addresses using natural language. The Assistant takes care of the rest. + +### Conversational Querying with Graph Assistant + +**Example queries:** + +- "List the top-5 swaps by USD value in the last 24 hours." +- "Give me the daily volume on Uniswap." +- "List the 20 most recently registered .eth names." + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) will eventually be a one-stop shop for interacting with The Graph. Right now, it's an agentic AI app that uses state-of-the-art AI techniques, LLMs, and MCPs to understand and answer your questions about [Subgraphs](/subgraphs/developing/subgraphs/) and [Token API](/token-api/quick-start/) data. + +## AI for Developers + +### Enable Natural Language Access to Onchain Data + +[Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) servers connect to Claude, Cline, and Cursor. They enable models to understand, query, and interact with structured onchain data using natural language. MCPs remove the need to write low-level queries or interact with APIs directly. + +### Subgraph MCP + +The [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/) server connects models to Subgraphs on The Graph Network. It allows language models to explore Subgraph schemas, execute GraphQL queries, find relevant Subgraphs by keyword or contract, and surface usage metrics using natural language. + +### Token API MCP + +The [Token API MCP](/ai-suite/token-api-mcp/introduction/) MCP server enables models to access onchain token data. It supports querying token metadata, wallet balances, transfer history, and top token holders through simple prompts. + +#### Benefits of Using Subgraph and Token API MCPs + +- Query Subgraphs and token data using natural language +- Access GraphQL schemas and token metadata without manual queries +- Find Subgraphs by keyword or contract and check 30-day usage +- Retrieve real-time data from The Graph and onchain token sources +- Get wallet balances, transfer history, and top token holders diff --git a/website/src/pages/sv/ai-suite/graph-assistant/_meta.js b/website/src/pages/sv/ai-suite/graph-assistant/_meta.js new file mode 100644 index 000000000000..74da5e0686a7 --- /dev/null +++ b/website/src/pages/sv/ai-suite/graph-assistant/_meta.js @@ -0,0 +1,6 @@ +export default { + 'quick-start': '', + introduction: '', + 'how-to-guide': '', + faq: '', +} diff --git a/website/src/pages/sv/ai-suite/graph-assistant/faq.mdx b/website/src/pages/sv/ai-suite/graph-assistant/faq.mdx new file mode 100644 index 000000000000..8addf9935524 --- /dev/null +++ b/website/src/pages/sv/ai-suite/graph-assistant/faq.mdx @@ -0,0 +1,26 @@ +--- +title: Graph Assistant FAQ +sidebarTitle: 'FAQ' +--- + +This page summarizes some of the most common questions for developers using Graph Assistant. + +1. What is The Graph Assistant? + +The Graph Assistant is an AI-powered chat interface that lets you query blockchain data in plain English. Under the hood, it translates your questions into GraphQL calls against Subgraphs and the Token API, then returns results, no coding required. + +2. What is an agentic application? + +An agentic application combines AI-driven reasoning with external data sources or APIs to take autonomous actions on your behalf. In this case, Graph Assistant acts as an “agent” that interprets your natural-language prompts, builds and dispatches GraphQL queries, and formats the results so that you don't need to write or manage queries yourself. + +3. Which networks and data does Graph Assistant support? + +The Assistant has access to Subgraphs across multiple chains. If a Subgraph is published to The Graph Network and is being indexed, the Assistant can automatically route queries to it. The Assistant also has access to the Token API on Ethereum Mainnet, BSC, Unichain, Arbitrum-One, Optimism, and Polygon. + +4. Is there a usage limit or quota? + +Yes, 10 questions per hour. + +5. What if the Assistant can't interpret my question? + +When the Assistant fails to parse your intent (for example, ambiguous token name, missing context, or an unsupported request), it will prompt you for clarification. For instance, it might ask, “Did you mean XYZ on Ethereum or XYZ on Arbitrum?” or “Please specify a date range for this query.” If you continue to see parsing errors, check that you're using correct token symbols or specifying networks and time frames clearly. diff --git a/website/src/pages/sv/ai-suite/graph-assistant/how-to-guide.mdx b/website/src/pages/sv/ai-suite/graph-assistant/how-to-guide.mdx new file mode 100644 index 000000000000..463130894ad8 --- /dev/null +++ b/website/src/pages/sv/ai-suite/graph-assistant/how-to-guide.mdx @@ -0,0 +1,56 @@ +--- +title: How To Use The Graph Assistant +sidebarTitle: 'How-to Guide' +--- + +## Overview + +You type a natural language question into the chat interface, such as: + +```yaml +'On Uniswap, return the top-10 pools by total value locked in USD.' +``` + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the underlying agents. Do not share sensitive, personal, or private information. + +### Behind the Scenes + +The Assistant: + +1. Interprets your intent +2. Maps it to the correct Subgraphs or Token API endpoint +3. Executes optimized queries +4. Returns clean, structured results + +You don't need to write queries or understand a Subgraph's schema, you simply ask. + +### Example Use Cases + +**Protocol Analytics** + +- “Compare daily active users on Aave vs. Compound in May 2025.” +- “Show me the total value locked (TVL) for XYZDAO over the last quarter.” + +**Token Insights** + +- “What are the top 10 tokens by market cap on Ethereum right now?” +- “How many XYZ did I receive between May 1 and May 15?” + +**Historical Data Retrieval** + +- “Fetch the token price history of XYZ for the last six months.” +- “What was the average gas price on Ethereum during April?” + +**Portfolio Monitoring** + +- “List my wallet’s current token balances and their USD equivalents.” +- “Calculate profit/loss on XYZ since xyz date.” + +**Cross-Chain Comparison** + +- “Show me the 7-day trading volume of XYZ on Ethereum vs. Polygon.” +- “How many XYZ swaps occurred on Arbitrum yesterday?” + +To get started follow the [quickstart](/ai-suite/graph-assistant/quick-start/) and explore its capabilities. diff --git a/website/src/pages/sv/ai-suite/graph-assistant/introduction.mdx b/website/src/pages/sv/ai-suite/graph-assistant/introduction.mdx new file mode 100644 index 000000000000..65fdf0f96028 --- /dev/null +++ b/website/src/pages/sv/ai-suite/graph-assistant/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +[Graph Assistant](https://thegraph.com/graph-assistant) (Beta) gives instant, code-free access to blockchain data, transforming natural language into precise, AI-powered queries without the need to code. + +## Overview + +[Graph Assistant](https://thegraph.com/graph-assistant) is an advanced, [agentic](/en/ai-suite/graph-assistant/faq/) easy-to-use chat interface for querying blockchain data using natural language. Unlike a basic chatbot, Graph Assistant can understand your intent, build complex queries, and execute them automatically. This gives you rich, AI-powered insights from onchain data without writing any code. + +- **Automatically** interprets user intent, generates precise queries, executes them via The Graph's Subgraphs and Token API, and presents structured, AI-powered answers without requiring any code. +- **Removes** the technical complexity found in traditional dashboards or chatbots. It provides composable insights directly from indexed Subgraphs and Token datasets. + +## Core Features + +| Feature | Description | +| --- | --- | +| **Friendly Interface** | Conversational access to blockchain data via natural language. You simply ask questions, the Assistant fetches the answer, and renders results. | +| **Backed by Subgraphs** | Uses subgraphs to index protocol-specific data like transactions, events, and protocol metrics. | +| **Backed by Token API** | Uses Token API for token-level information like balances, transfers, and metadata. | +| **No Setup Required** | No need to configure data sources or write queries. | +| **Automatic Query Building** | The Assistant performs complex queries such as fetching historical token volumes, protocol analytics, or cross-chain data and handles filtering, pagination, and joins across Subgraphs automatically. | + +## Help Shape What's Next + +This is in **beta**, and community input is essential. If you have ideas, questions, or run into anything unexpected, we'd love to hear from you: + +- Join the community on [Discord](https://discord.com/invite/graphprotocol): Provide feedback and stay in the loop with other builders. You'll be able to join the `#graph-assistant` channel to share your experience directly. +- Interested in going deeper? Reach out to become a dedicated beta tester so your specific use case can be better supported. diff --git a/website/src/pages/sv/ai-suite/graph-assistant/quick-start.mdx b/website/src/pages/sv/ai-suite/graph-assistant/quick-start.mdx new file mode 100644 index 000000000000..13f8478b8d2b --- /dev/null +++ b/website/src/pages/sv/ai-suite/graph-assistant/quick-start.mdx @@ -0,0 +1,44 @@ +--- +title: Quick Start +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +This guide provides step-by-step instructions for getting started with Graph Assistant quickly. + +## Step-by Step + +### Step 1. Create an Account + +Go to: [Graph Assistant](https://thegraph.com/graph-assistant) + +- Click Sign Up (or Log In if you already have an account). +- Use your Google, GitHub, X, email or wallet credentials to log in. +- No additional setup is required. + +### Step 2. Open the Assistant Chat + +After logging in: + +- You'll see Graph Assistant's interface. +- At the bottom of the page, you will find a chat input bar. This is where you will interact with the Assistant. + +### Step 3: Ask Your First Question + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +In the input bar, type a natural-language query (everyday language). + +Example: + +```yaml +Show me the 24-hour trading volume of XYZ token on Ethereum +``` + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the AI interface. Do not share sensitive, personal, or private information. + +The Assistant will: + +- Digest your question +- Fetch onchain data using Subgraphs or the Token API +- Return a clean, formatted response with the data you need diff --git a/website/src/pages/sv/ai-suite/subgraph-mcp/_meta.js b/website/src/pages/sv/ai-suite/subgraph-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/sv/ai-suite/subgraph-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/sv/ai-suite/subgraph-mcp/claude.mdx b/website/src/pages/sv/ai-suite/subgraph-mcp/claude.mdx new file mode 100644 index 000000000000..ff3caa4e3e7f --- /dev/null +++ b/website/src/pages/sv/ai-suite/subgraph-mcp/claude.mdx @@ -0,0 +1,169 @@ +--- +title: Claude Desktop +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data via natural language conversations with Claude. + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` diff --git a/website/src/pages/sv/ai-suite/subgraph-mcp/cline.mdx b/website/src/pages/sv/ai-suite/subgraph-mcp/cline.mdx new file mode 100644 index 000000000000..eb8044bfe991 --- /dev/null +++ b/website/src/pages/sv/ai-suite/subgraph-mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "Subgraph Server Instructions" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/sv/ai-suite/subgraph-mcp/cursor.mdx b/website/src/pages/sv/ai-suite/subgraph-mcp/cursor.mdx new file mode 100644 index 000000000000..6291caf4b06b --- /dev/null +++ b/website/src/pages/sv/ai-suite/subgraph-mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/sv/ai-suite/subgraph-mcp/introduction.mdx b/website/src/pages/sv/ai-suite/subgraph-mcp/introduction.mdx new file mode 100644 index 000000000000..da1272cf9a36 --- /dev/null +++ b/website/src/pages/sv/ai-suite/subgraph-mcp/introduction.mdx @@ -0,0 +1,22 @@ +--- +title: Subgraph MCP Introduction +sidebarTitle: 'Introduction' +--- + +Subgraph MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +It presents The Graph's Subgraph data through a set of MCP tools that any MCP-compatible client can call. With these tools, clients can search for relevant Subgraphs, inspect GraphQL schemas, and run queries against specific deployments on The Graph Network all within a single, standardized interface. + +The server itself does not hold a language model. Instead, it translates incoming MCP requests into Subgraph queries and returns the structured results, allowing the client's LLM to transform a natural-language prompt into actionable blockchain data. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Subgraph ecosystem. + +## What You Can Do + +- Access GraphQL schemas for any Subgraph on The Graph Network +- Run GraphQL queries on any Subgraph deployment +- Discover top Subgraph deployments by keyword or contract address +- Retrieve 30-day query volumes for Subgraph deployments +- Ask questions about Subgraph data without writing GraphQL manually + +The Subgraph MCP server allows smooth integration with [Claude](/ai-suite/subgraph-mcp/claude/), [Cline](/ai-suite/subgraph-mcp/cline/), or [Cursor](/ai-suite/subgraph-mcp/cursor/), making blockchain data queries with The Graph Network a conversational experience. diff --git a/website/src/pages/sv/ai-suite/token-api-mcp/_meta.js b/website/src/pages/sv/ai-suite/token-api-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/sv/ai-suite/token-api-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/sv/ai-suite/token-api-mcp/claude.mdx b/website/src/pages/sv/ai-suite/token-api-mcp/claude.mdx new file mode 100644 index 000000000000..3e21f4d7e165 --- /dev/null +++ b/website/src/pages/sv/ai-suite/token-api-mcp/claude.mdx @@ -0,0 +1,58 @@ +--- +title: Using Claude Desktop to Access the Token API via MCP +sidebarTitle: Claude Desktop +--- + +## Prerequisites + +- [Claude Desktop](https://claude.ai/download) installed. +- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. +- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. + +![Screenshot of Claude Desktop's settings panel showing the MCP server configuration option.](/img/claude-preview-token-api.png) + +## Configuration + +Create or edit your `claude_desktop_config.json` file. + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +```json label="claude_desktop_config.json" +{ + "mcpServers": { + "token-api": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "" + } + } + } +} +``` + +## Troubleshooting + +To enable logs for the MCP, use the `--verbose true` option. + +### ENOENT + +![Error dialog in Claude Desktop showing 'ENOENT' system error, indicating the npx/bunx command wasn't found in the system path.](/img/claude-ENOENT.png) + +Try to use the full path of the command instead: + +- Run `which npx` or `which bunx` to get the path of the command. +- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). + +### Server disconnected + +![Connection error notification in Claude Desktop displaying 'Server disconnected' message.](/img/claude-server-disconnect.png) + +Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. + +> You can always have a look at the full logs under `Claude/logs/mcp.log` and `Claude/logs/mcp-server-pinax.log` for more details. diff --git a/website/src/pages/sv/ai-suite/token-api-mcp/cline.mdx b/website/src/pages/sv/ai-suite/token-api-mcp/cline.mdx new file mode 100644 index 000000000000..e885d21366cd --- /dev/null +++ b/website/src/pages/sv/ai-suite/token-api-mcp/cline.mdx @@ -0,0 +1,52 @@ +--- +title: Using Cline to Access the Token API via MCP +sidebarTitle: Cline +--- + +## Prerequisites + +- [Cline](https://cline.bot/) installed. +- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. +- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. + +![Screenshot of Cline's MCP server configuration interface displaying the JSON settings file with mcp-pinax server details visible.](/img/cline-preview-token-api.png) + +## Configuration + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +```json label="cline_mcp_settings.json" +{ + "mcpServers": { + "mcp-pinax": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "" + } + } + } +} +``` + +## Troubleshooting + +To enable logs for the MCP, use the `--verbose true` option. + +### ENOENT + +![Cline error dialog showing 'ENOENT' system alert.](/img/cline-error.png) + +Try to use the full path of the command instead: + +- Run `which npx` or `which bunx` to get the path of the command. +- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). + +### Server disconnected + +![Cline connection error notification displaying server disconnection warning.](/img/cline-missing-variables.png) + +Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/sv/ai-suite/token-api-mcp/cursor.mdx b/website/src/pages/sv/ai-suite/token-api-mcp/cursor.mdx new file mode 100644 index 000000000000..68fe2fdb201c --- /dev/null +++ b/website/src/pages/sv/ai-suite/token-api-mcp/cursor.mdx @@ -0,0 +1,50 @@ +--- +title: Using Cursor to Access the Token API via MCP +sidebarTitle: Cursor +--- + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed. +- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. +- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. + +![Screenshot of Cursor's MCP configuration panel.](/img/cursor-preview-token-api.png) + +## Configuration + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +```json label="mcp.json" +{ + "mcpServers": { + "mcp-pinax": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "" + } + } + } +} +``` + +## Troubleshooting + +![Cursor IDE error notification that reads, "Failed to create client"](/img/cursor-error.png) + +To enable logs for the MCP, use the `--verbose true` option. + +### ENOENT + +Try to use the full path of the command instead: + +- Run `which npx` or `which bunx` to get the path of the command. +- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). + +### Server disconnected + +Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/sv/ai-suite/token-api-mcp/introduction.mdx b/website/src/pages/sv/ai-suite/token-api-mcp/introduction.mdx new file mode 100644 index 000000000000..b61ad0a1c485 --- /dev/null +++ b/website/src/pages/sv/ai-suite/token-api-mcp/introduction.mdx @@ -0,0 +1,23 @@ +--- +title: Token API MCP Introduction +sidebarTitle: 'Introduction' +--- + +Token API MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +This MCP server makes on-chain token data, including metadata, balances, transfers, and holder statistics, accessible through a set of MCP tools. Any compatible client can use these tools to fetch and analyze token information through a standardized interface. It connects to The Graph's hosted Token API database, enabling AI assistants to query real-time blockchain data using natural language requests that get translated into optimized SQL queries. + +The server itself does not host any language model. It simply converts MCP calls into data look-ups and returns structured results, letting the client's own LLM incorporate the results. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Token API data. + +## What You Can Do + +- Retrieve token metadata including name, symbol, decimals, total supply, and contract address +- Get token balances for any wallet address holding a supported ERC-20 token +- Fetch token transfer activity including sender, receiver, amount, and timestamp +- Identify top holders and analyze token distribution +- Ask natural language questions about token data without writing smart contract calls +- Access historical transfer data to analyze token movement over time + +The Token MCP server provides [Claude](/ai-suite/token-api-mcp/claude/), [Cline](/ai-suite/token-api-mcp/cline/), and [Cursor](/ai-suite/token-api-mcp/cursor/) with direct, conversational access to onchain token data. diff --git a/website/src/pages/sv/resources/_meta.js b/website/src/pages/sv/resources/_meta.js index aa8e2d0ec6a8..38c56cf56c43 100644 --- a/website/src/pages/sv/resources/_meta.js +++ b/website/src/pages/sv/resources/_meta.js @@ -7,5 +7,4 @@ export default { roles: titles.roles ?? '', 'migration-guides': titles['migration-guides'] ?? '', 'subgraph-studio-faq': '', - 'claude-mcp': '', } diff --git a/website/src/pages/sv/resources/claude-mcp.mdx b/website/src/pages/sv/resources/claude-mcp.mdx deleted file mode 100644 index 44ed075cffda..000000000000 --- a/website/src/pages/sv/resources/claude-mcp.mdx +++ /dev/null @@ -1,122 +0,0 @@ ---- -title: Claude MCP ---- - -This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. - -## What You Can Do - -With these integrations, you can: - -- **Token API**: Access token and wallet information across multiple blockchains -- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries - -## Prerequisites - -- [Node.js](https://nodejs.org/en/download/) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed -- API keys: - - Token API key from [The Graph Market](https://thegraph.market/) - - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -## Configuration Steps - -### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** - -Paths by operating system: - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -### 2. Add Configuration - -Replace the contents of the existing config file with: - -```json -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "ACCESS_TOKEN" - } - }, - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Keys - -Replace: - -- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) -- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -### 4. Save and Restart - -- Save the configuration file -- Restart Claude Desktop - -### 5. Add The Graph Resources in Claude - -After configuration: - -1. Start a new conversation in Claude Desktop -2. Click on the context menu (top right) -3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP - -> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. - -### 6. Run Queries - -Here are some example queries you can try after setting up the resources: - -### Subgraph Queries - -``` -What are the top pools in Uniswap? -``` - -``` -Who are the top Delegators of The Graph Protocol? -``` - -``` -Please make a bar chart for the number of active loans in Compound for the last 7 days -``` - -### Token API Queries - -``` -Show me the current price of ETH -``` - -``` -What are the top tokens by market cap on Ethereum? -``` - -``` -Analyze this wallet address: 0x... -``` - -## Troubleshooting - -If you encounter issues: - -1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal -2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file -3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs -4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop diff --git a/website/src/pages/sv/subgraphs/_meta.js b/website/src/pages/sv/subgraphs/_meta.js index 4365293ffc72..45841d5f3355 100644 --- a/website/src/pages/sv/subgraphs/_meta.js +++ b/website/src/pages/sv/subgraphs/_meta.js @@ -6,7 +6,6 @@ export default { querying: titles.querying ?? '', developing: titles.developing ?? '', billing: '', - mcp: titles.mcp ?? '', guides: titles.guides, 'best-practices': titles['best-practices'], 'fair-use-policy': '', diff --git a/website/src/pages/sv/subgraphs/mcp/_meta.js b/website/src/pages/sv/subgraphs/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/sv/subgraphs/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/sv/subgraphs/mcp/claude.mdx b/website/src/pages/sv/subgraphs/mcp/claude.mdx deleted file mode 100644 index 027b272cb942..000000000000 --- a/website/src/pages/sv/subgraphs/mcp/claude.mdx +++ /dev/null @@ -1,179 +0,0 @@ ---- -title: Claude Desktop ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. - -## What You Can Do - -The Subgraph MCP integration enables you to: - -- Access the GraphQL schema for any Subgraph on The Graph Network -- Execute GraphQL queries against any Subgraph deployment -- Find top Subgraph deployments for a given keyword or contract address -- Get 30-day query volume for Subgraph deployments -- Ask natural language questions about Subgraph data without writing GraphQL queries manually - -## Prerequisites - -- [Node.js](https://nodejs.org/en) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) - -## Installation Options - -### Option 1: Using npx (Recommended) - -#### Configuration Steps using npx - -#### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Settings** > **Developer** > **Edit Config** - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -#### 2. Add Configuration - -Paste the following settings into your config file: - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -#### 3. Add Your Gateway API Key - -Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). - -#### 4. Save and Restart - -Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. - -### Option 2: Building from Source - -#### Requirements - -- Rust (latest stable version recommended: 1.75+) - ```bash - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - ``` - Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). - -#### Installation Steps - -1. **Clone and Build the Repository** - - ```bash - git clone git@github.com:graphops/subgraph-mcp.git - cd subgraph-mcp - cargo build --release - ``` - -2. **Find the Command Path** - - After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - - Run `pwd` to get the full path - - Combine the output with `/target/release/subgraph-mcp` - -3. **Configure Claude Desktop** - - Open your `claude_desktop_config.json` file as described above and add: - - ```json - { - "mcpServers": { - "subgraph": { - "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", - "env": { - "GATEWAY_API_KEY": "your-api-key-here" - } - } - } - } - ``` - - Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. - -## Using The Graph Resource in Claude - -After configuring Claude Desktop: - -1. Restart Claude Desktop -2. Start a new conversation -3. Click on the context menu (top right) -4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context - -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. - -## Troubleshooting - -To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal -- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments -- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees - -## Key Identifier Types - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -``` -Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one -``` diff --git a/website/src/pages/sv/subgraphs/mcp/cline.mdx b/website/src/pages/sv/subgraphs/mcp/cline.mdx deleted file mode 100644 index 156221d9a127..000000000000 --- a/website/src/pages/sv/subgraphs/mcp/cline.mdx +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: Cline ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. - -## Prerequisites - -- [Cline](https://cline.bot/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `cline_mcp_settings.json` file. - -> **MCP Servers** > **Installed** > **Configure MCP Servers** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -## Using The Graph Resource in Cline - -After configuring Cline: - -1. Restart Cline -2. Start a new conversation -3. Enable the Subgraph MCP from the context menu -4. Add "Subgraph Server Instructions" as a resource to your chat context - -## Available Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/sv/subgraphs/mcp/cursor.mdx b/website/src/pages/sv/subgraphs/mcp/cursor.mdx deleted file mode 100644 index 298f43ece048..000000000000 --- a/website/src/pages/sv/subgraphs/mcp/cursor.mdx +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Cursor ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. - -## Prerequisites - -- [Cursor](https://www.cursor.com/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `~/.cursor/mcp.json` file. - -> **Cursor Settings** > **MCP** > **Add new global MCP Server** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -### 4. Restart Cursor - -Restart Cursor, and start a new chat. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/sv/substreams/_meta.js b/website/src/pages/sv/substreams/_meta.js index a8ee04618eae..658bb8c213c6 100644 --- a/website/src/pages/sv/substreams/_meta.js +++ b/website/src/pages/sv/substreams/_meta.js @@ -5,5 +5,4 @@ export default { introduction: '', developing: titles.developing ?? '', publishing: '', - sps: titles.sps ?? '', } diff --git a/website/src/pages/sv/token-api/_meta-titles.json b/website/src/pages/sv/token-api/_meta-titles.json index 7ed31e0af95d..3108ecd3ebfd 100644 --- a/website/src/pages/sv/token-api/_meta-titles.json +++ b/website/src/pages/sv/token-api/_meta-titles.json @@ -1,6 +1,7 @@ { "mcp": "MCP", "evm": "EVM Endpoints", + "svm": "SVM Endpoints", "monitoring": "Monitoring Endpoints", "faq": "FAQ" } diff --git a/website/src/pages/sv/token-api/_meta.js b/website/src/pages/sv/token-api/_meta.js index f67576d7f612..fb7f7334ea0c 100644 --- a/website/src/pages/sv/token-api/_meta.js +++ b/website/src/pages/sv/token-api/_meta.js @@ -2,8 +2,8 @@ import titles from './_meta-titles.json' export default { 'quick-start': '', - mcp: titles.mcp ?? '', evm: titles.evm ?? '', + svm: titles.svm ?? '', monitoring: titles.monitoring ?? '', faq: '', } diff --git a/website/src/pages/sv/token-api/mcp/_meta.js b/website/src/pages/sv/token-api/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/sv/token-api/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/sv/token-api/svm/_meta.js b/website/src/pages/sv/token-api/svm/_meta.js new file mode 100644 index 000000000000..1a48b82fcbf1 --- /dev/null +++ b/website/src/pages/sv/token-api/svm/_meta.js @@ -0,0 +1,5 @@ +export default { + 'get-balances-svm': '', + 'get-transfers-svm': '', + 'get-swaps-svm': '', +} diff --git a/website/src/pages/sv/token-api/svm/get-balances-svm.mdx b/website/src/pages/sv/token-api/svm/get-balances-svm.mdx new file mode 100644 index 000000000000..c2946c190bf9 --- /dev/null +++ b/website/src/pages/sv/token-api/svm/get-balances-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Balances +template: + type: openApi + apiId: tokenApi + operationId: getBalancesSvm +--- + +Provides Solana tokens balances by token account address. diff --git a/website/src/pages/sv/token-api/svm/get-swaps-svm.mdx b/website/src/pages/sv/token-api/svm/get-swaps-svm.mdx new file mode 100644 index 000000000000..95282a38ac9f --- /dev/null +++ b/website/src/pages/sv/token-api/svm/get-swaps-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsSvm +--- + +Provides Raydium swap events. diff --git a/website/src/pages/sv/token-api/svm/get-transfers-svm.mdx b/website/src/pages/sv/token-api/svm/get-transfers-svm.mdx new file mode 100644 index 000000000000..5335cdddf418 --- /dev/null +++ b/website/src/pages/sv/token-api/svm/get-transfers-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersSvm +--- + +Provides SVM transfer events. diff --git a/website/src/pages/tr/ai-suite/_meta-titles.json b/website/src/pages/tr/ai-suite/_meta-titles.json new file mode 100644 index 000000000000..5eb482a7092b --- /dev/null +++ b/website/src/pages/tr/ai-suite/_meta-titles.json @@ -0,0 +1,6 @@ +{ + "graph-assistant": "Graph Assistant", + "ai-introduction": "The Graph's AI", + "subgraph-mcp": "Subgraph MCP", + "token-api-mcp": "Token API MCP" +} diff --git a/website/src/pages/tr/ai-suite/_meta.js b/website/src/pages/tr/ai-suite/_meta.js new file mode 100644 index 000000000000..c9e51dfd35fb --- /dev/null +++ b/website/src/pages/tr/ai-suite/_meta.js @@ -0,0 +1,8 @@ +import titles from './_meta-titles.json' + +export default { + 'ai-introduction': titles['ai-introduction'], + 'graph-assistant': titles['graph-assistant'], + 'subgraph-mcp': titles['subgraph-mcp'], + 'token-api-mcp': titles['token-api-mcp'], +} diff --git a/website/src/pages/tr/ai-suite/ai-introduction.mdx b/website/src/pages/tr/ai-suite/ai-introduction.mdx new file mode 100644 index 000000000000..d25cc9f77358 --- /dev/null +++ b/website/src/pages/tr/ai-suite/ai-introduction.mdx @@ -0,0 +1,58 @@ +--- +title: The Graph's AI +--- + +Build with speed and scale faster with The Graph's AI. + +## Using AI on The Graph + +Instead of relying on static datasets or centralized APIs, you can now access live blockchain data through our **agentic** app, [Graph Assistant](/ai-suite/graph-assistant/introduction/), and use our AI-native tooling, [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/), and [Token API MCP](/ai-suite/token-api-mcp/introduction/). + +### Why Use Onchain Data with AI? + +Using onchain data with AI unlocks powerful new ways to interact with and understand blockchain ecosystems. + +- **AI for Non-Technical End Users**: AI can turn complex onchain data into accessible insights. Assistants powered by AI enable you to explore and analyze blockchain data without coding. +- **AI for Developers**: You can use AI to interact directly with The Graph's data through your agents or build AI-powered applications on top of it. This streamlines development and opens up more intuitive, dynamic use cases. + +## AI for Non-Technical/End Users + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) is a powerful **agentic** application that empowers users to easily interact with blockchain data. Ask questions in simple, natural language and get rich, AI powered insights. Both technical developers and non-technical product teams can move faster, make smarter decisions, and gain a clearer understanding than ever before. + +### Benefits of Using Graph Assistant + +- **Natural language Input**: You don't need to write complex queries or sift through dashboards. Simply ask your question in plain English and get clear, structured results. +- **Multi-source support**: Works across multiple Subgraphs and Token API. The Assistant automatically determines which data source to use, so you don't have to switch tools or manage endpoints. +- **Schema-free access**: You don't need to understand the schema. You can refer to tokens, protocols, dates, or addresses using natural language. The Assistant takes care of the rest. + +### Conversational Querying with Graph Assistant + +**Example queries:** + +- "List the top-5 swaps by USD value in the last 24 hours." +- "Give me the daily volume on Uniswap." +- "List the 20 most recently registered .eth names." + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) will eventually be a one-stop shop for interacting with The Graph. Right now, it's an agentic AI app that uses state-of-the-art AI techniques, LLMs, and MCPs to understand and answer your questions about [Subgraphs](/subgraphs/developing/subgraphs/) and [Token API](/token-api/quick-start/) data. + +## AI for Developers + +### Enable Natural Language Access to Onchain Data + +[Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) servers connect to Claude, Cline, and Cursor. They enable models to understand, query, and interact with structured onchain data using natural language. MCPs remove the need to write low-level queries or interact with APIs directly. + +### Subgraph MCP + +The [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/) server connects models to Subgraphs on The Graph Network. It allows language models to explore Subgraph schemas, execute GraphQL queries, find relevant Subgraphs by keyword or contract, and surface usage metrics using natural language. + +### Token API MCP + +The [Token API MCP](/ai-suite/token-api-mcp/introduction/) MCP server enables models to access onchain token data. It supports querying token metadata, wallet balances, transfer history, and top token holders through simple prompts. + +#### Benefits of Using Subgraph and Token API MCPs + +- Query Subgraphs and token data using natural language +- Access GraphQL schemas and token metadata without manual queries +- Find Subgraphs by keyword or contract and check 30-day usage +- Retrieve real-time data from The Graph and onchain token sources +- Get wallet balances, transfer history, and top token holders diff --git a/website/src/pages/tr/ai-suite/graph-assistant/_meta.js b/website/src/pages/tr/ai-suite/graph-assistant/_meta.js new file mode 100644 index 000000000000..74da5e0686a7 --- /dev/null +++ b/website/src/pages/tr/ai-suite/graph-assistant/_meta.js @@ -0,0 +1,6 @@ +export default { + 'quick-start': '', + introduction: '', + 'how-to-guide': '', + faq: '', +} diff --git a/website/src/pages/tr/ai-suite/graph-assistant/faq.mdx b/website/src/pages/tr/ai-suite/graph-assistant/faq.mdx new file mode 100644 index 000000000000..8addf9935524 --- /dev/null +++ b/website/src/pages/tr/ai-suite/graph-assistant/faq.mdx @@ -0,0 +1,26 @@ +--- +title: Graph Assistant FAQ +sidebarTitle: 'FAQ' +--- + +This page summarizes some of the most common questions for developers using Graph Assistant. + +1. What is The Graph Assistant? + +The Graph Assistant is an AI-powered chat interface that lets you query blockchain data in plain English. Under the hood, it translates your questions into GraphQL calls against Subgraphs and the Token API, then returns results, no coding required. + +2. What is an agentic application? + +An agentic application combines AI-driven reasoning with external data sources or APIs to take autonomous actions on your behalf. In this case, Graph Assistant acts as an “agent” that interprets your natural-language prompts, builds and dispatches GraphQL queries, and formats the results so that you don't need to write or manage queries yourself. + +3. Which networks and data does Graph Assistant support? + +The Assistant has access to Subgraphs across multiple chains. If a Subgraph is published to The Graph Network and is being indexed, the Assistant can automatically route queries to it. The Assistant also has access to the Token API on Ethereum Mainnet, BSC, Unichain, Arbitrum-One, Optimism, and Polygon. + +4. Is there a usage limit or quota? + +Yes, 10 questions per hour. + +5. What if the Assistant can't interpret my question? + +When the Assistant fails to parse your intent (for example, ambiguous token name, missing context, or an unsupported request), it will prompt you for clarification. For instance, it might ask, “Did you mean XYZ on Ethereum or XYZ on Arbitrum?” or “Please specify a date range for this query.” If you continue to see parsing errors, check that you're using correct token symbols or specifying networks and time frames clearly. diff --git a/website/src/pages/tr/ai-suite/graph-assistant/how-to-guide.mdx b/website/src/pages/tr/ai-suite/graph-assistant/how-to-guide.mdx new file mode 100644 index 000000000000..463130894ad8 --- /dev/null +++ b/website/src/pages/tr/ai-suite/graph-assistant/how-to-guide.mdx @@ -0,0 +1,56 @@ +--- +title: How To Use The Graph Assistant +sidebarTitle: 'How-to Guide' +--- + +## Overview + +You type a natural language question into the chat interface, such as: + +```yaml +'On Uniswap, return the top-10 pools by total value locked in USD.' +``` + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the underlying agents. Do not share sensitive, personal, or private information. + +### Behind the Scenes + +The Assistant: + +1. Interprets your intent +2. Maps it to the correct Subgraphs or Token API endpoint +3. Executes optimized queries +4. Returns clean, structured results + +You don't need to write queries or understand a Subgraph's schema, you simply ask. + +### Example Use Cases + +**Protocol Analytics** + +- “Compare daily active users on Aave vs. Compound in May 2025.” +- “Show me the total value locked (TVL) for XYZDAO over the last quarter.” + +**Token Insights** + +- “What are the top 10 tokens by market cap on Ethereum right now?” +- “How many XYZ did I receive between May 1 and May 15?” + +**Historical Data Retrieval** + +- “Fetch the token price history of XYZ for the last six months.” +- “What was the average gas price on Ethereum during April?” + +**Portfolio Monitoring** + +- “List my wallet’s current token balances and their USD equivalents.” +- “Calculate profit/loss on XYZ since xyz date.” + +**Cross-Chain Comparison** + +- “Show me the 7-day trading volume of XYZ on Ethereum vs. Polygon.” +- “How many XYZ swaps occurred on Arbitrum yesterday?” + +To get started follow the [quickstart](/ai-suite/graph-assistant/quick-start/) and explore its capabilities. diff --git a/website/src/pages/tr/ai-suite/graph-assistant/introduction.mdx b/website/src/pages/tr/ai-suite/graph-assistant/introduction.mdx new file mode 100644 index 000000000000..65fdf0f96028 --- /dev/null +++ b/website/src/pages/tr/ai-suite/graph-assistant/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +[Graph Assistant](https://thegraph.com/graph-assistant) (Beta) gives instant, code-free access to blockchain data, transforming natural language into precise, AI-powered queries without the need to code. + +## Overview + +[Graph Assistant](https://thegraph.com/graph-assistant) is an advanced, [agentic](/en/ai-suite/graph-assistant/faq/) easy-to-use chat interface for querying blockchain data using natural language. Unlike a basic chatbot, Graph Assistant can understand your intent, build complex queries, and execute them automatically. This gives you rich, AI-powered insights from onchain data without writing any code. + +- **Automatically** interprets user intent, generates precise queries, executes them via The Graph's Subgraphs and Token API, and presents structured, AI-powered answers without requiring any code. +- **Removes** the technical complexity found in traditional dashboards or chatbots. It provides composable insights directly from indexed Subgraphs and Token datasets. + +## Core Features + +| Feature | Description | +| --- | --- | +| **Friendly Interface** | Conversational access to blockchain data via natural language. You simply ask questions, the Assistant fetches the answer, and renders results. | +| **Backed by Subgraphs** | Uses subgraphs to index protocol-specific data like transactions, events, and protocol metrics. | +| **Backed by Token API** | Uses Token API for token-level information like balances, transfers, and metadata. | +| **No Setup Required** | No need to configure data sources or write queries. | +| **Automatic Query Building** | The Assistant performs complex queries such as fetching historical token volumes, protocol analytics, or cross-chain data and handles filtering, pagination, and joins across Subgraphs automatically. | + +## Help Shape What's Next + +This is in **beta**, and community input is essential. If you have ideas, questions, or run into anything unexpected, we'd love to hear from you: + +- Join the community on [Discord](https://discord.com/invite/graphprotocol): Provide feedback and stay in the loop with other builders. You'll be able to join the `#graph-assistant` channel to share your experience directly. +- Interested in going deeper? Reach out to become a dedicated beta tester so your specific use case can be better supported. diff --git a/website/src/pages/tr/ai-suite/graph-assistant/quick-start.mdx b/website/src/pages/tr/ai-suite/graph-assistant/quick-start.mdx new file mode 100644 index 000000000000..13f8478b8d2b --- /dev/null +++ b/website/src/pages/tr/ai-suite/graph-assistant/quick-start.mdx @@ -0,0 +1,44 @@ +--- +title: Quick Start +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +This guide provides step-by-step instructions for getting started with Graph Assistant quickly. + +## Step-by Step + +### Step 1. Create an Account + +Go to: [Graph Assistant](https://thegraph.com/graph-assistant) + +- Click Sign Up (or Log In if you already have an account). +- Use your Google, GitHub, X, email or wallet credentials to log in. +- No additional setup is required. + +### Step 2. Open the Assistant Chat + +After logging in: + +- You'll see Graph Assistant's interface. +- At the bottom of the page, you will find a chat input bar. This is where you will interact with the Assistant. + +### Step 3: Ask Your First Question + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +In the input bar, type a natural-language query (everyday language). + +Example: + +```yaml +Show me the 24-hour trading volume of XYZ token on Ethereum +``` + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the AI interface. Do not share sensitive, personal, or private information. + +The Assistant will: + +- Digest your question +- Fetch onchain data using Subgraphs or the Token API +- Return a clean, formatted response with the data you need diff --git a/website/src/pages/tr/ai-suite/subgraph-mcp/_meta.js b/website/src/pages/tr/ai-suite/subgraph-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/tr/ai-suite/subgraph-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/tr/ai-suite/subgraph-mcp/claude.mdx b/website/src/pages/tr/ai-suite/subgraph-mcp/claude.mdx new file mode 100644 index 000000000000..ff3caa4e3e7f --- /dev/null +++ b/website/src/pages/tr/ai-suite/subgraph-mcp/claude.mdx @@ -0,0 +1,169 @@ +--- +title: Claude Desktop +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data via natural language conversations with Claude. + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` diff --git a/website/src/pages/tr/ai-suite/subgraph-mcp/cline.mdx b/website/src/pages/tr/ai-suite/subgraph-mcp/cline.mdx new file mode 100644 index 000000000000..eb8044bfe991 --- /dev/null +++ b/website/src/pages/tr/ai-suite/subgraph-mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "Subgraph Server Instructions" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/tr/ai-suite/subgraph-mcp/cursor.mdx b/website/src/pages/tr/ai-suite/subgraph-mcp/cursor.mdx new file mode 100644 index 000000000000..6291caf4b06b --- /dev/null +++ b/website/src/pages/tr/ai-suite/subgraph-mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/tr/ai-suite/subgraph-mcp/introduction.mdx b/website/src/pages/tr/ai-suite/subgraph-mcp/introduction.mdx new file mode 100644 index 000000000000..da1272cf9a36 --- /dev/null +++ b/website/src/pages/tr/ai-suite/subgraph-mcp/introduction.mdx @@ -0,0 +1,22 @@ +--- +title: Subgraph MCP Introduction +sidebarTitle: 'Introduction' +--- + +Subgraph MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +It presents The Graph's Subgraph data through a set of MCP tools that any MCP-compatible client can call. With these tools, clients can search for relevant Subgraphs, inspect GraphQL schemas, and run queries against specific deployments on The Graph Network all within a single, standardized interface. + +The server itself does not hold a language model. Instead, it translates incoming MCP requests into Subgraph queries and returns the structured results, allowing the client's LLM to transform a natural-language prompt into actionable blockchain data. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Subgraph ecosystem. + +## What You Can Do + +- Access GraphQL schemas for any Subgraph on The Graph Network +- Run GraphQL queries on any Subgraph deployment +- Discover top Subgraph deployments by keyword or contract address +- Retrieve 30-day query volumes for Subgraph deployments +- Ask questions about Subgraph data without writing GraphQL manually + +The Subgraph MCP server allows smooth integration with [Claude](/ai-suite/subgraph-mcp/claude/), [Cline](/ai-suite/subgraph-mcp/cline/), or [Cursor](/ai-suite/subgraph-mcp/cursor/), making blockchain data queries with The Graph Network a conversational experience. diff --git a/website/src/pages/tr/ai-suite/token-api-mcp/_meta.js b/website/src/pages/tr/ai-suite/token-api-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/tr/ai-suite/token-api-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/tr/ai-suite/token-api-mcp/claude.mdx b/website/src/pages/tr/ai-suite/token-api-mcp/claude.mdx new file mode 100644 index 000000000000..3e21f4d7e165 --- /dev/null +++ b/website/src/pages/tr/ai-suite/token-api-mcp/claude.mdx @@ -0,0 +1,58 @@ +--- +title: Using Claude Desktop to Access the Token API via MCP +sidebarTitle: Claude Desktop +--- + +## Prerequisites + +- [Claude Desktop](https://claude.ai/download) installed. +- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. +- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. + +![Screenshot of Claude Desktop's settings panel showing the MCP server configuration option.](/img/claude-preview-token-api.png) + +## Configuration + +Create or edit your `claude_desktop_config.json` file. + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +```json label="claude_desktop_config.json" +{ + "mcpServers": { + "token-api": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "" + } + } + } +} +``` + +## Troubleshooting + +To enable logs for the MCP, use the `--verbose true` option. + +### ENOENT + +![Error dialog in Claude Desktop showing 'ENOENT' system error, indicating the npx/bunx command wasn't found in the system path.](/img/claude-ENOENT.png) + +Try to use the full path of the command instead: + +- Run `which npx` or `which bunx` to get the path of the command. +- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). + +### Server disconnected + +![Connection error notification in Claude Desktop displaying 'Server disconnected' message.](/img/claude-server-disconnect.png) + +Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. + +> You can always have a look at the full logs under `Claude/logs/mcp.log` and `Claude/logs/mcp-server-pinax.log` for more details. diff --git a/website/src/pages/tr/ai-suite/token-api-mcp/cline.mdx b/website/src/pages/tr/ai-suite/token-api-mcp/cline.mdx new file mode 100644 index 000000000000..e885d21366cd --- /dev/null +++ b/website/src/pages/tr/ai-suite/token-api-mcp/cline.mdx @@ -0,0 +1,52 @@ +--- +title: Using Cline to Access the Token API via MCP +sidebarTitle: Cline +--- + +## Prerequisites + +- [Cline](https://cline.bot/) installed. +- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. +- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. + +![Screenshot of Cline's MCP server configuration interface displaying the JSON settings file with mcp-pinax server details visible.](/img/cline-preview-token-api.png) + +## Configuration + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +```json label="cline_mcp_settings.json" +{ + "mcpServers": { + "mcp-pinax": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "" + } + } + } +} +``` + +## Troubleshooting + +To enable logs for the MCP, use the `--verbose true` option. + +### ENOENT + +![Cline error dialog showing 'ENOENT' system alert.](/img/cline-error.png) + +Try to use the full path of the command instead: + +- Run `which npx` or `which bunx` to get the path of the command. +- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). + +### Server disconnected + +![Cline connection error notification displaying server disconnection warning.](/img/cline-missing-variables.png) + +Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/tr/ai-suite/token-api-mcp/cursor.mdx b/website/src/pages/tr/ai-suite/token-api-mcp/cursor.mdx new file mode 100644 index 000000000000..68fe2fdb201c --- /dev/null +++ b/website/src/pages/tr/ai-suite/token-api-mcp/cursor.mdx @@ -0,0 +1,50 @@ +--- +title: Using Cursor to Access the Token API via MCP +sidebarTitle: Cursor +--- + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed. +- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. +- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. + +![Screenshot of Cursor's MCP configuration panel.](/img/cursor-preview-token-api.png) + +## Configuration + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +```json label="mcp.json" +{ + "mcpServers": { + "mcp-pinax": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "" + } + } + } +} +``` + +## Troubleshooting + +![Cursor IDE error notification that reads, "Failed to create client"](/img/cursor-error.png) + +To enable logs for the MCP, use the `--verbose true` option. + +### ENOENT + +Try to use the full path of the command instead: + +- Run `which npx` or `which bunx` to get the path of the command. +- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). + +### Server disconnected + +Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/tr/ai-suite/token-api-mcp/introduction.mdx b/website/src/pages/tr/ai-suite/token-api-mcp/introduction.mdx new file mode 100644 index 000000000000..b61ad0a1c485 --- /dev/null +++ b/website/src/pages/tr/ai-suite/token-api-mcp/introduction.mdx @@ -0,0 +1,23 @@ +--- +title: Token API MCP Introduction +sidebarTitle: 'Introduction' +--- + +Token API MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +This MCP server makes on-chain token data, including metadata, balances, transfers, and holder statistics, accessible through a set of MCP tools. Any compatible client can use these tools to fetch and analyze token information through a standardized interface. It connects to The Graph's hosted Token API database, enabling AI assistants to query real-time blockchain data using natural language requests that get translated into optimized SQL queries. + +The server itself does not host any language model. It simply converts MCP calls into data look-ups and returns structured results, letting the client's own LLM incorporate the results. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Token API data. + +## What You Can Do + +- Retrieve token metadata including name, symbol, decimals, total supply, and contract address +- Get token balances for any wallet address holding a supported ERC-20 token +- Fetch token transfer activity including sender, receiver, amount, and timestamp +- Identify top holders and analyze token distribution +- Ask natural language questions about token data without writing smart contract calls +- Access historical transfer data to analyze token movement over time + +The Token MCP server provides [Claude](/ai-suite/token-api-mcp/claude/), [Cline](/ai-suite/token-api-mcp/cline/), and [Cursor](/ai-suite/token-api-mcp/cursor/) with direct, conversational access to onchain token data. diff --git a/website/src/pages/tr/resources/_meta.js b/website/src/pages/tr/resources/_meta.js index aa8e2d0ec6a8..38c56cf56c43 100644 --- a/website/src/pages/tr/resources/_meta.js +++ b/website/src/pages/tr/resources/_meta.js @@ -7,5 +7,4 @@ export default { roles: titles.roles ?? '', 'migration-guides': titles['migration-guides'] ?? '', 'subgraph-studio-faq': '', - 'claude-mcp': '', } diff --git a/website/src/pages/tr/resources/claude-mcp.mdx b/website/src/pages/tr/resources/claude-mcp.mdx deleted file mode 100644 index 44ed075cffda..000000000000 --- a/website/src/pages/tr/resources/claude-mcp.mdx +++ /dev/null @@ -1,122 +0,0 @@ ---- -title: Claude MCP ---- - -This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. - -## What You Can Do - -With these integrations, you can: - -- **Token API**: Access token and wallet information across multiple blockchains -- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries - -## Prerequisites - -- [Node.js](https://nodejs.org/en/download/) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed -- API keys: - - Token API key from [The Graph Market](https://thegraph.market/) - - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -## Configuration Steps - -### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** - -Paths by operating system: - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -### 2. Add Configuration - -Replace the contents of the existing config file with: - -```json -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "ACCESS_TOKEN" - } - }, - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Keys - -Replace: - -- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) -- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -### 4. Save and Restart - -- Save the configuration file -- Restart Claude Desktop - -### 5. Add The Graph Resources in Claude - -After configuration: - -1. Start a new conversation in Claude Desktop -2. Click on the context menu (top right) -3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP - -> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. - -### 6. Run Queries - -Here are some example queries you can try after setting up the resources: - -### Subgraph Queries - -``` -What are the top pools in Uniswap? -``` - -``` -Who are the top Delegators of The Graph Protocol? -``` - -``` -Please make a bar chart for the number of active loans in Compound for the last 7 days -``` - -### Token API Queries - -``` -Show me the current price of ETH -``` - -``` -What are the top tokens by market cap on Ethereum? -``` - -``` -Analyze this wallet address: 0x... -``` - -## Troubleshooting - -If you encounter issues: - -1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal -2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file -3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs -4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop diff --git a/website/src/pages/tr/subgraphs/_meta.js b/website/src/pages/tr/subgraphs/_meta.js index 4365293ffc72..45841d5f3355 100644 --- a/website/src/pages/tr/subgraphs/_meta.js +++ b/website/src/pages/tr/subgraphs/_meta.js @@ -6,7 +6,6 @@ export default { querying: titles.querying ?? '', developing: titles.developing ?? '', billing: '', - mcp: titles.mcp ?? '', guides: titles.guides, 'best-practices': titles['best-practices'], 'fair-use-policy': '', diff --git a/website/src/pages/tr/subgraphs/mcp/_meta.js b/website/src/pages/tr/subgraphs/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/tr/subgraphs/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/tr/subgraphs/mcp/claude.mdx b/website/src/pages/tr/subgraphs/mcp/claude.mdx deleted file mode 100644 index 027b272cb942..000000000000 --- a/website/src/pages/tr/subgraphs/mcp/claude.mdx +++ /dev/null @@ -1,179 +0,0 @@ ---- -title: Claude Desktop ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. - -## What You Can Do - -The Subgraph MCP integration enables you to: - -- Access the GraphQL schema for any Subgraph on The Graph Network -- Execute GraphQL queries against any Subgraph deployment -- Find top Subgraph deployments for a given keyword or contract address -- Get 30-day query volume for Subgraph deployments -- Ask natural language questions about Subgraph data without writing GraphQL queries manually - -## Prerequisites - -- [Node.js](https://nodejs.org/en) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) - -## Installation Options - -### Option 1: Using npx (Recommended) - -#### Configuration Steps using npx - -#### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Settings** > **Developer** > **Edit Config** - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -#### 2. Add Configuration - -Paste the following settings into your config file: - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -#### 3. Add Your Gateway API Key - -Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). - -#### 4. Save and Restart - -Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. - -### Option 2: Building from Source - -#### Requirements - -- Rust (latest stable version recommended: 1.75+) - ```bash - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - ``` - Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). - -#### Installation Steps - -1. **Clone and Build the Repository** - - ```bash - git clone git@github.com:graphops/subgraph-mcp.git - cd subgraph-mcp - cargo build --release - ``` - -2. **Find the Command Path** - - After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - - Run `pwd` to get the full path - - Combine the output with `/target/release/subgraph-mcp` - -3. **Configure Claude Desktop** - - Open your `claude_desktop_config.json` file as described above and add: - - ```json - { - "mcpServers": { - "subgraph": { - "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", - "env": { - "GATEWAY_API_KEY": "your-api-key-here" - } - } - } - } - ``` - - Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. - -## Using The Graph Resource in Claude - -After configuring Claude Desktop: - -1. Restart Claude Desktop -2. Start a new conversation -3. Click on the context menu (top right) -4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context - -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. - -## Troubleshooting - -To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal -- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments -- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees - -## Key Identifier Types - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -``` -Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one -``` diff --git a/website/src/pages/tr/subgraphs/mcp/cline.mdx b/website/src/pages/tr/subgraphs/mcp/cline.mdx deleted file mode 100644 index 156221d9a127..000000000000 --- a/website/src/pages/tr/subgraphs/mcp/cline.mdx +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: Cline ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. - -## Prerequisites - -- [Cline](https://cline.bot/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `cline_mcp_settings.json` file. - -> **MCP Servers** > **Installed** > **Configure MCP Servers** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -## Using The Graph Resource in Cline - -After configuring Cline: - -1. Restart Cline -2. Start a new conversation -3. Enable the Subgraph MCP from the context menu -4. Add "Subgraph Server Instructions" as a resource to your chat context - -## Available Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/tr/subgraphs/mcp/cursor.mdx b/website/src/pages/tr/subgraphs/mcp/cursor.mdx deleted file mode 100644 index 298f43ece048..000000000000 --- a/website/src/pages/tr/subgraphs/mcp/cursor.mdx +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Cursor ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. - -## Prerequisites - -- [Cursor](https://www.cursor.com/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `~/.cursor/mcp.json` file. - -> **Cursor Settings** > **MCP** > **Add new global MCP Server** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -### 4. Restart Cursor - -Restart Cursor, and start a new chat. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/tr/substreams/_meta.js b/website/src/pages/tr/substreams/_meta.js index a8ee04618eae..658bb8c213c6 100644 --- a/website/src/pages/tr/substreams/_meta.js +++ b/website/src/pages/tr/substreams/_meta.js @@ -5,5 +5,4 @@ export default { introduction: '', developing: titles.developing ?? '', publishing: '', - sps: titles.sps ?? '', } diff --git a/website/src/pages/tr/token-api/_meta-titles.json b/website/src/pages/tr/token-api/_meta-titles.json index 7ed31e0af95d..3108ecd3ebfd 100644 --- a/website/src/pages/tr/token-api/_meta-titles.json +++ b/website/src/pages/tr/token-api/_meta-titles.json @@ -1,6 +1,7 @@ { "mcp": "MCP", "evm": "EVM Endpoints", + "svm": "SVM Endpoints", "monitoring": "Monitoring Endpoints", "faq": "FAQ" } diff --git a/website/src/pages/tr/token-api/_meta.js b/website/src/pages/tr/token-api/_meta.js index f67576d7f612..fb7f7334ea0c 100644 --- a/website/src/pages/tr/token-api/_meta.js +++ b/website/src/pages/tr/token-api/_meta.js @@ -2,8 +2,8 @@ import titles from './_meta-titles.json' export default { 'quick-start': '', - mcp: titles.mcp ?? '', evm: titles.evm ?? '', + svm: titles.svm ?? '', monitoring: titles.monitoring ?? '', faq: '', } diff --git a/website/src/pages/tr/token-api/mcp/_meta.js b/website/src/pages/tr/token-api/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/tr/token-api/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/tr/token-api/svm/_meta.js b/website/src/pages/tr/token-api/svm/_meta.js new file mode 100644 index 000000000000..1a48b82fcbf1 --- /dev/null +++ b/website/src/pages/tr/token-api/svm/_meta.js @@ -0,0 +1,5 @@ +export default { + 'get-balances-svm': '', + 'get-transfers-svm': '', + 'get-swaps-svm': '', +} diff --git a/website/src/pages/tr/token-api/svm/get-balances-svm.mdx b/website/src/pages/tr/token-api/svm/get-balances-svm.mdx new file mode 100644 index 000000000000..c2946c190bf9 --- /dev/null +++ b/website/src/pages/tr/token-api/svm/get-balances-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Balances +template: + type: openApi + apiId: tokenApi + operationId: getBalancesSvm +--- + +Provides Solana tokens balances by token account address. diff --git a/website/src/pages/tr/token-api/svm/get-swaps-svm.mdx b/website/src/pages/tr/token-api/svm/get-swaps-svm.mdx new file mode 100644 index 000000000000..95282a38ac9f --- /dev/null +++ b/website/src/pages/tr/token-api/svm/get-swaps-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsSvm +--- + +Provides Raydium swap events. diff --git a/website/src/pages/tr/token-api/svm/get-transfers-svm.mdx b/website/src/pages/tr/token-api/svm/get-transfers-svm.mdx new file mode 100644 index 000000000000..5335cdddf418 --- /dev/null +++ b/website/src/pages/tr/token-api/svm/get-transfers-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersSvm +--- + +Provides SVM transfer events. diff --git a/website/src/pages/uk/ai-suite/_meta-titles.json b/website/src/pages/uk/ai-suite/_meta-titles.json new file mode 100644 index 000000000000..5eb482a7092b --- /dev/null +++ b/website/src/pages/uk/ai-suite/_meta-titles.json @@ -0,0 +1,6 @@ +{ + "graph-assistant": "Graph Assistant", + "ai-introduction": "The Graph's AI", + "subgraph-mcp": "Subgraph MCP", + "token-api-mcp": "Token API MCP" +} diff --git a/website/src/pages/uk/ai-suite/_meta.js b/website/src/pages/uk/ai-suite/_meta.js new file mode 100644 index 000000000000..c9e51dfd35fb --- /dev/null +++ b/website/src/pages/uk/ai-suite/_meta.js @@ -0,0 +1,8 @@ +import titles from './_meta-titles.json' + +export default { + 'ai-introduction': titles['ai-introduction'], + 'graph-assistant': titles['graph-assistant'], + 'subgraph-mcp': titles['subgraph-mcp'], + 'token-api-mcp': titles['token-api-mcp'], +} diff --git a/website/src/pages/uk/ai-suite/ai-introduction.mdx b/website/src/pages/uk/ai-suite/ai-introduction.mdx new file mode 100644 index 000000000000..d25cc9f77358 --- /dev/null +++ b/website/src/pages/uk/ai-suite/ai-introduction.mdx @@ -0,0 +1,58 @@ +--- +title: The Graph's AI +--- + +Build with speed and scale faster with The Graph's AI. + +## Using AI on The Graph + +Instead of relying on static datasets or centralized APIs, you can now access live blockchain data through our **agentic** app, [Graph Assistant](/ai-suite/graph-assistant/introduction/), and use our AI-native tooling, [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/), and [Token API MCP](/ai-suite/token-api-mcp/introduction/). + +### Why Use Onchain Data with AI? + +Using onchain data with AI unlocks powerful new ways to interact with and understand blockchain ecosystems. + +- **AI for Non-Technical End Users**: AI can turn complex onchain data into accessible insights. Assistants powered by AI enable you to explore and analyze blockchain data without coding. +- **AI for Developers**: You can use AI to interact directly with The Graph's data through your agents or build AI-powered applications on top of it. This streamlines development and opens up more intuitive, dynamic use cases. + +## AI for Non-Technical/End Users + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) is a powerful **agentic** application that empowers users to easily interact with blockchain data. Ask questions in simple, natural language and get rich, AI powered insights. Both technical developers and non-technical product teams can move faster, make smarter decisions, and gain a clearer understanding than ever before. + +### Benefits of Using Graph Assistant + +- **Natural language Input**: You don't need to write complex queries or sift through dashboards. Simply ask your question in plain English and get clear, structured results. +- **Multi-source support**: Works across multiple Subgraphs and Token API. The Assistant automatically determines which data source to use, so you don't have to switch tools or manage endpoints. +- **Schema-free access**: You don't need to understand the schema. You can refer to tokens, protocols, dates, or addresses using natural language. The Assistant takes care of the rest. + +### Conversational Querying with Graph Assistant + +**Example queries:** + +- "List the top-5 swaps by USD value in the last 24 hours." +- "Give me the daily volume on Uniswap." +- "List the 20 most recently registered .eth names." + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) will eventually be a one-stop shop for interacting with The Graph. Right now, it's an agentic AI app that uses state-of-the-art AI techniques, LLMs, and MCPs to understand and answer your questions about [Subgraphs](/subgraphs/developing/subgraphs/) and [Token API](/token-api/quick-start/) data. + +## AI for Developers + +### Enable Natural Language Access to Onchain Data + +[Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) servers connect to Claude, Cline, and Cursor. They enable models to understand, query, and interact with structured onchain data using natural language. MCPs remove the need to write low-level queries or interact with APIs directly. + +### Subgraph MCP + +The [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/) server connects models to Subgraphs on The Graph Network. It allows language models to explore Subgraph schemas, execute GraphQL queries, find relevant Subgraphs by keyword or contract, and surface usage metrics using natural language. + +### Token API MCP + +The [Token API MCP](/ai-suite/token-api-mcp/introduction/) MCP server enables models to access onchain token data. It supports querying token metadata, wallet balances, transfer history, and top token holders through simple prompts. + +#### Benefits of Using Subgraph and Token API MCPs + +- Query Subgraphs and token data using natural language +- Access GraphQL schemas and token metadata without manual queries +- Find Subgraphs by keyword or contract and check 30-day usage +- Retrieve real-time data from The Graph and onchain token sources +- Get wallet balances, transfer history, and top token holders diff --git a/website/src/pages/uk/ai-suite/graph-assistant/_meta.js b/website/src/pages/uk/ai-suite/graph-assistant/_meta.js new file mode 100644 index 000000000000..74da5e0686a7 --- /dev/null +++ b/website/src/pages/uk/ai-suite/graph-assistant/_meta.js @@ -0,0 +1,6 @@ +export default { + 'quick-start': '', + introduction: '', + 'how-to-guide': '', + faq: '', +} diff --git a/website/src/pages/uk/ai-suite/graph-assistant/faq.mdx b/website/src/pages/uk/ai-suite/graph-assistant/faq.mdx new file mode 100644 index 000000000000..8addf9935524 --- /dev/null +++ b/website/src/pages/uk/ai-suite/graph-assistant/faq.mdx @@ -0,0 +1,26 @@ +--- +title: Graph Assistant FAQ +sidebarTitle: 'FAQ' +--- + +This page summarizes some of the most common questions for developers using Graph Assistant. + +1. What is The Graph Assistant? + +The Graph Assistant is an AI-powered chat interface that lets you query blockchain data in plain English. Under the hood, it translates your questions into GraphQL calls against Subgraphs and the Token API, then returns results, no coding required. + +2. What is an agentic application? + +An agentic application combines AI-driven reasoning with external data sources or APIs to take autonomous actions on your behalf. In this case, Graph Assistant acts as an “agent” that interprets your natural-language prompts, builds and dispatches GraphQL queries, and formats the results so that you don't need to write or manage queries yourself. + +3. Which networks and data does Graph Assistant support? + +The Assistant has access to Subgraphs across multiple chains. If a Subgraph is published to The Graph Network and is being indexed, the Assistant can automatically route queries to it. The Assistant also has access to the Token API on Ethereum Mainnet, BSC, Unichain, Arbitrum-One, Optimism, and Polygon. + +4. Is there a usage limit or quota? + +Yes, 10 questions per hour. + +5. What if the Assistant can't interpret my question? + +When the Assistant fails to parse your intent (for example, ambiguous token name, missing context, or an unsupported request), it will prompt you for clarification. For instance, it might ask, “Did you mean XYZ on Ethereum or XYZ on Arbitrum?” or “Please specify a date range for this query.” If you continue to see parsing errors, check that you're using correct token symbols or specifying networks and time frames clearly. diff --git a/website/src/pages/uk/ai-suite/graph-assistant/how-to-guide.mdx b/website/src/pages/uk/ai-suite/graph-assistant/how-to-guide.mdx new file mode 100644 index 000000000000..463130894ad8 --- /dev/null +++ b/website/src/pages/uk/ai-suite/graph-assistant/how-to-guide.mdx @@ -0,0 +1,56 @@ +--- +title: How To Use The Graph Assistant +sidebarTitle: 'How-to Guide' +--- + +## Overview + +You type a natural language question into the chat interface, such as: + +```yaml +'On Uniswap, return the top-10 pools by total value locked in USD.' +``` + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the underlying agents. Do not share sensitive, personal, or private information. + +### Behind the Scenes + +The Assistant: + +1. Interprets your intent +2. Maps it to the correct Subgraphs or Token API endpoint +3. Executes optimized queries +4. Returns clean, structured results + +You don't need to write queries or understand a Subgraph's schema, you simply ask. + +### Example Use Cases + +**Protocol Analytics** + +- “Compare daily active users on Aave vs. Compound in May 2025.” +- “Show me the total value locked (TVL) for XYZDAO over the last quarter.” + +**Token Insights** + +- “What are the top 10 tokens by market cap on Ethereum right now?” +- “How many XYZ did I receive between May 1 and May 15?” + +**Historical Data Retrieval** + +- “Fetch the token price history of XYZ for the last six months.” +- “What was the average gas price on Ethereum during April?” + +**Portfolio Monitoring** + +- “List my wallet’s current token balances and their USD equivalents.” +- “Calculate profit/loss on XYZ since xyz date.” + +**Cross-Chain Comparison** + +- “Show me the 7-day trading volume of XYZ on Ethereum vs. Polygon.” +- “How many XYZ swaps occurred on Arbitrum yesterday?” + +To get started follow the [quickstart](/ai-suite/graph-assistant/quick-start/) and explore its capabilities. diff --git a/website/src/pages/uk/ai-suite/graph-assistant/introduction.mdx b/website/src/pages/uk/ai-suite/graph-assistant/introduction.mdx new file mode 100644 index 000000000000..65fdf0f96028 --- /dev/null +++ b/website/src/pages/uk/ai-suite/graph-assistant/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +[Graph Assistant](https://thegraph.com/graph-assistant) (Beta) gives instant, code-free access to blockchain data, transforming natural language into precise, AI-powered queries without the need to code. + +## Overview + +[Graph Assistant](https://thegraph.com/graph-assistant) is an advanced, [agentic](/en/ai-suite/graph-assistant/faq/) easy-to-use chat interface for querying blockchain data using natural language. Unlike a basic chatbot, Graph Assistant can understand your intent, build complex queries, and execute them automatically. This gives you rich, AI-powered insights from onchain data without writing any code. + +- **Automatically** interprets user intent, generates precise queries, executes them via The Graph's Subgraphs and Token API, and presents structured, AI-powered answers without requiring any code. +- **Removes** the technical complexity found in traditional dashboards or chatbots. It provides composable insights directly from indexed Subgraphs and Token datasets. + +## Core Features + +| Feature | Description | +| --- | --- | +| **Friendly Interface** | Conversational access to blockchain data via natural language. You simply ask questions, the Assistant fetches the answer, and renders results. | +| **Backed by Subgraphs** | Uses subgraphs to index protocol-specific data like transactions, events, and protocol metrics. | +| **Backed by Token API** | Uses Token API for token-level information like balances, transfers, and metadata. | +| **No Setup Required** | No need to configure data sources or write queries. | +| **Automatic Query Building** | The Assistant performs complex queries such as fetching historical token volumes, protocol analytics, or cross-chain data and handles filtering, pagination, and joins across Subgraphs automatically. | + +## Help Shape What's Next + +This is in **beta**, and community input is essential. If you have ideas, questions, or run into anything unexpected, we'd love to hear from you: + +- Join the community on [Discord](https://discord.com/invite/graphprotocol): Provide feedback and stay in the loop with other builders. You'll be able to join the `#graph-assistant` channel to share your experience directly. +- Interested in going deeper? Reach out to become a dedicated beta tester so your specific use case can be better supported. diff --git a/website/src/pages/uk/ai-suite/graph-assistant/quick-start.mdx b/website/src/pages/uk/ai-suite/graph-assistant/quick-start.mdx new file mode 100644 index 000000000000..13f8478b8d2b --- /dev/null +++ b/website/src/pages/uk/ai-suite/graph-assistant/quick-start.mdx @@ -0,0 +1,44 @@ +--- +title: Quick Start +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +This guide provides step-by-step instructions for getting started with Graph Assistant quickly. + +## Step-by Step + +### Step 1. Create an Account + +Go to: [Graph Assistant](https://thegraph.com/graph-assistant) + +- Click Sign Up (or Log In if you already have an account). +- Use your Google, GitHub, X, email or wallet credentials to log in. +- No additional setup is required. + +### Step 2. Open the Assistant Chat + +After logging in: + +- You'll see Graph Assistant's interface. +- At the bottom of the page, you will find a chat input bar. This is where you will interact with the Assistant. + +### Step 3: Ask Your First Question + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +In the input bar, type a natural-language query (everyday language). + +Example: + +```yaml +Show me the 24-hour trading volume of XYZ token on Ethereum +``` + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the AI interface. Do not share sensitive, personal, or private information. + +The Assistant will: + +- Digest your question +- Fetch onchain data using Subgraphs or the Token API +- Return a clean, formatted response with the data you need diff --git a/website/src/pages/uk/ai-suite/subgraph-mcp/_meta.js b/website/src/pages/uk/ai-suite/subgraph-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/uk/ai-suite/subgraph-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/uk/ai-suite/subgraph-mcp/claude.mdx b/website/src/pages/uk/ai-suite/subgraph-mcp/claude.mdx new file mode 100644 index 000000000000..ff3caa4e3e7f --- /dev/null +++ b/website/src/pages/uk/ai-suite/subgraph-mcp/claude.mdx @@ -0,0 +1,169 @@ +--- +title: Claude Desktop +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data via natural language conversations with Claude. + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` diff --git a/website/src/pages/uk/ai-suite/subgraph-mcp/cline.mdx b/website/src/pages/uk/ai-suite/subgraph-mcp/cline.mdx new file mode 100644 index 000000000000..eb8044bfe991 --- /dev/null +++ b/website/src/pages/uk/ai-suite/subgraph-mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "Subgraph Server Instructions" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/uk/ai-suite/subgraph-mcp/cursor.mdx b/website/src/pages/uk/ai-suite/subgraph-mcp/cursor.mdx new file mode 100644 index 000000000000..6291caf4b06b --- /dev/null +++ b/website/src/pages/uk/ai-suite/subgraph-mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/uk/ai-suite/subgraph-mcp/introduction.mdx b/website/src/pages/uk/ai-suite/subgraph-mcp/introduction.mdx new file mode 100644 index 000000000000..da1272cf9a36 --- /dev/null +++ b/website/src/pages/uk/ai-suite/subgraph-mcp/introduction.mdx @@ -0,0 +1,22 @@ +--- +title: Subgraph MCP Introduction +sidebarTitle: 'Introduction' +--- + +Subgraph MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +It presents The Graph's Subgraph data through a set of MCP tools that any MCP-compatible client can call. With these tools, clients can search for relevant Subgraphs, inspect GraphQL schemas, and run queries against specific deployments on The Graph Network all within a single, standardized interface. + +The server itself does not hold a language model. Instead, it translates incoming MCP requests into Subgraph queries and returns the structured results, allowing the client's LLM to transform a natural-language prompt into actionable blockchain data. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Subgraph ecosystem. + +## What You Can Do + +- Access GraphQL schemas for any Subgraph on The Graph Network +- Run GraphQL queries on any Subgraph deployment +- Discover top Subgraph deployments by keyword or contract address +- Retrieve 30-day query volumes for Subgraph deployments +- Ask questions about Subgraph data without writing GraphQL manually + +The Subgraph MCP server allows smooth integration with [Claude](/ai-suite/subgraph-mcp/claude/), [Cline](/ai-suite/subgraph-mcp/cline/), or [Cursor](/ai-suite/subgraph-mcp/cursor/), making blockchain data queries with The Graph Network a conversational experience. diff --git a/website/src/pages/uk/ai-suite/token-api-mcp/_meta.js b/website/src/pages/uk/ai-suite/token-api-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/uk/ai-suite/token-api-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/uk/ai-suite/token-api-mcp/claude.mdx b/website/src/pages/uk/ai-suite/token-api-mcp/claude.mdx new file mode 100644 index 000000000000..3e21f4d7e165 --- /dev/null +++ b/website/src/pages/uk/ai-suite/token-api-mcp/claude.mdx @@ -0,0 +1,58 @@ +--- +title: Using Claude Desktop to Access the Token API via MCP +sidebarTitle: Claude Desktop +--- + +## Prerequisites + +- [Claude Desktop](https://claude.ai/download) installed. +- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. +- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. + +![Screenshot of Claude Desktop's settings panel showing the MCP server configuration option.](/img/claude-preview-token-api.png) + +## Configuration + +Create or edit your `claude_desktop_config.json` file. + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +```json label="claude_desktop_config.json" +{ + "mcpServers": { + "token-api": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "" + } + } + } +} +``` + +## Troubleshooting + +To enable logs for the MCP, use the `--verbose true` option. + +### ENOENT + +![Error dialog in Claude Desktop showing 'ENOENT' system error, indicating the npx/bunx command wasn't found in the system path.](/img/claude-ENOENT.png) + +Try to use the full path of the command instead: + +- Run `which npx` or `which bunx` to get the path of the command. +- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). + +### Server disconnected + +![Connection error notification in Claude Desktop displaying 'Server disconnected' message.](/img/claude-server-disconnect.png) + +Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. + +> You can always have a look at the full logs under `Claude/logs/mcp.log` and `Claude/logs/mcp-server-pinax.log` for more details. diff --git a/website/src/pages/uk/ai-suite/token-api-mcp/cline.mdx b/website/src/pages/uk/ai-suite/token-api-mcp/cline.mdx new file mode 100644 index 000000000000..e885d21366cd --- /dev/null +++ b/website/src/pages/uk/ai-suite/token-api-mcp/cline.mdx @@ -0,0 +1,52 @@ +--- +title: Using Cline to Access the Token API via MCP +sidebarTitle: Cline +--- + +## Prerequisites + +- [Cline](https://cline.bot/) installed. +- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. +- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. + +![Screenshot of Cline's MCP server configuration interface displaying the JSON settings file with mcp-pinax server details visible.](/img/cline-preview-token-api.png) + +## Configuration + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +```json label="cline_mcp_settings.json" +{ + "mcpServers": { + "mcp-pinax": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "" + } + } + } +} +``` + +## Troubleshooting + +To enable logs for the MCP, use the `--verbose true` option. + +### ENOENT + +![Cline error dialog showing 'ENOENT' system alert.](/img/cline-error.png) + +Try to use the full path of the command instead: + +- Run `which npx` or `which bunx` to get the path of the command. +- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). + +### Server disconnected + +![Cline connection error notification displaying server disconnection warning.](/img/cline-missing-variables.png) + +Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/uk/ai-suite/token-api-mcp/cursor.mdx b/website/src/pages/uk/ai-suite/token-api-mcp/cursor.mdx new file mode 100644 index 000000000000..68fe2fdb201c --- /dev/null +++ b/website/src/pages/uk/ai-suite/token-api-mcp/cursor.mdx @@ -0,0 +1,50 @@ +--- +title: Using Cursor to Access the Token API via MCP +sidebarTitle: Cursor +--- + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed. +- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. +- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. + +![Screenshot of Cursor's MCP configuration panel.](/img/cursor-preview-token-api.png) + +## Configuration + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +```json label="mcp.json" +{ + "mcpServers": { + "mcp-pinax": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "" + } + } + } +} +``` + +## Troubleshooting + +![Cursor IDE error notification that reads, "Failed to create client"](/img/cursor-error.png) + +To enable logs for the MCP, use the `--verbose true` option. + +### ENOENT + +Try to use the full path of the command instead: + +- Run `which npx` or `which bunx` to get the path of the command. +- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). + +### Server disconnected + +Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/uk/ai-suite/token-api-mcp/introduction.mdx b/website/src/pages/uk/ai-suite/token-api-mcp/introduction.mdx new file mode 100644 index 000000000000..b61ad0a1c485 --- /dev/null +++ b/website/src/pages/uk/ai-suite/token-api-mcp/introduction.mdx @@ -0,0 +1,23 @@ +--- +title: Token API MCP Introduction +sidebarTitle: 'Introduction' +--- + +Token API MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +This MCP server makes on-chain token data, including metadata, balances, transfers, and holder statistics, accessible through a set of MCP tools. Any compatible client can use these tools to fetch and analyze token information through a standardized interface. It connects to The Graph's hosted Token API database, enabling AI assistants to query real-time blockchain data using natural language requests that get translated into optimized SQL queries. + +The server itself does not host any language model. It simply converts MCP calls into data look-ups and returns structured results, letting the client's own LLM incorporate the results. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Token API data. + +## What You Can Do + +- Retrieve token metadata including name, symbol, decimals, total supply, and contract address +- Get token balances for any wallet address holding a supported ERC-20 token +- Fetch token transfer activity including sender, receiver, amount, and timestamp +- Identify top holders and analyze token distribution +- Ask natural language questions about token data without writing smart contract calls +- Access historical transfer data to analyze token movement over time + +The Token MCP server provides [Claude](/ai-suite/token-api-mcp/claude/), [Cline](/ai-suite/token-api-mcp/cline/), and [Cursor](/ai-suite/token-api-mcp/cursor/) with direct, conversational access to onchain token data. diff --git a/website/src/pages/uk/resources/_meta.js b/website/src/pages/uk/resources/_meta.js index aa8e2d0ec6a8..38c56cf56c43 100644 --- a/website/src/pages/uk/resources/_meta.js +++ b/website/src/pages/uk/resources/_meta.js @@ -7,5 +7,4 @@ export default { roles: titles.roles ?? '', 'migration-guides': titles['migration-guides'] ?? '', 'subgraph-studio-faq': '', - 'claude-mcp': '', } diff --git a/website/src/pages/uk/resources/claude-mcp.mdx b/website/src/pages/uk/resources/claude-mcp.mdx deleted file mode 100644 index 44ed075cffda..000000000000 --- a/website/src/pages/uk/resources/claude-mcp.mdx +++ /dev/null @@ -1,122 +0,0 @@ ---- -title: Claude MCP ---- - -This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. - -## What You Can Do - -With these integrations, you can: - -- **Token API**: Access token and wallet information across multiple blockchains -- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries - -## Prerequisites - -- [Node.js](https://nodejs.org/en/download/) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed -- API keys: - - Token API key from [The Graph Market](https://thegraph.market/) - - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -## Configuration Steps - -### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** - -Paths by operating system: - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -### 2. Add Configuration - -Replace the contents of the existing config file with: - -```json -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "ACCESS_TOKEN" - } - }, - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Keys - -Replace: - -- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) -- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -### 4. Save and Restart - -- Save the configuration file -- Restart Claude Desktop - -### 5. Add The Graph Resources in Claude - -After configuration: - -1. Start a new conversation in Claude Desktop -2. Click on the context menu (top right) -3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP - -> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. - -### 6. Run Queries - -Here are some example queries you can try after setting up the resources: - -### Subgraph Queries - -``` -What are the top pools in Uniswap? -``` - -``` -Who are the top Delegators of The Graph Protocol? -``` - -``` -Please make a bar chart for the number of active loans in Compound for the last 7 days -``` - -### Token API Queries - -``` -Show me the current price of ETH -``` - -``` -What are the top tokens by market cap on Ethereum? -``` - -``` -Analyze this wallet address: 0x... -``` - -## Troubleshooting - -If you encounter issues: - -1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal -2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file -3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs -4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop diff --git a/website/src/pages/uk/subgraphs/_meta.js b/website/src/pages/uk/subgraphs/_meta.js index 4365293ffc72..45841d5f3355 100644 --- a/website/src/pages/uk/subgraphs/_meta.js +++ b/website/src/pages/uk/subgraphs/_meta.js @@ -6,7 +6,6 @@ export default { querying: titles.querying ?? '', developing: titles.developing ?? '', billing: '', - mcp: titles.mcp ?? '', guides: titles.guides, 'best-practices': titles['best-practices'], 'fair-use-policy': '', diff --git a/website/src/pages/uk/subgraphs/mcp/_meta.js b/website/src/pages/uk/subgraphs/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/uk/subgraphs/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/uk/subgraphs/mcp/claude.mdx b/website/src/pages/uk/subgraphs/mcp/claude.mdx deleted file mode 100644 index 027b272cb942..000000000000 --- a/website/src/pages/uk/subgraphs/mcp/claude.mdx +++ /dev/null @@ -1,179 +0,0 @@ ---- -title: Claude Desktop ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. - -## What You Can Do - -The Subgraph MCP integration enables you to: - -- Access the GraphQL schema for any Subgraph on The Graph Network -- Execute GraphQL queries against any Subgraph deployment -- Find top Subgraph deployments for a given keyword or contract address -- Get 30-day query volume for Subgraph deployments -- Ask natural language questions about Subgraph data without writing GraphQL queries manually - -## Prerequisites - -- [Node.js](https://nodejs.org/en) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) - -## Installation Options - -### Option 1: Using npx (Recommended) - -#### Configuration Steps using npx - -#### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Settings** > **Developer** > **Edit Config** - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -#### 2. Add Configuration - -Paste the following settings into your config file: - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -#### 3. Add Your Gateway API Key - -Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). - -#### 4. Save and Restart - -Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. - -### Option 2: Building from Source - -#### Requirements - -- Rust (latest stable version recommended: 1.75+) - ```bash - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - ``` - Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). - -#### Installation Steps - -1. **Clone and Build the Repository** - - ```bash - git clone git@github.com:graphops/subgraph-mcp.git - cd subgraph-mcp - cargo build --release - ``` - -2. **Find the Command Path** - - After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - - Run `pwd` to get the full path - - Combine the output with `/target/release/subgraph-mcp` - -3. **Configure Claude Desktop** - - Open your `claude_desktop_config.json` file as described above and add: - - ```json - { - "mcpServers": { - "subgraph": { - "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", - "env": { - "GATEWAY_API_KEY": "your-api-key-here" - } - } - } - } - ``` - - Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. - -## Using The Graph Resource in Claude - -After configuring Claude Desktop: - -1. Restart Claude Desktop -2. Start a new conversation -3. Click on the context menu (top right) -4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context - -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. - -## Troubleshooting - -To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal -- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments -- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees - -## Key Identifier Types - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -``` -Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one -``` diff --git a/website/src/pages/uk/subgraphs/mcp/cline.mdx b/website/src/pages/uk/subgraphs/mcp/cline.mdx deleted file mode 100644 index 156221d9a127..000000000000 --- a/website/src/pages/uk/subgraphs/mcp/cline.mdx +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: Cline ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. - -## Prerequisites - -- [Cline](https://cline.bot/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `cline_mcp_settings.json` file. - -> **MCP Servers** > **Installed** > **Configure MCP Servers** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -## Using The Graph Resource in Cline - -After configuring Cline: - -1. Restart Cline -2. Start a new conversation -3. Enable the Subgraph MCP from the context menu -4. Add "Subgraph Server Instructions" as a resource to your chat context - -## Available Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/uk/subgraphs/mcp/cursor.mdx b/website/src/pages/uk/subgraphs/mcp/cursor.mdx deleted file mode 100644 index 298f43ece048..000000000000 --- a/website/src/pages/uk/subgraphs/mcp/cursor.mdx +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Cursor ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. - -## Prerequisites - -- [Cursor](https://www.cursor.com/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `~/.cursor/mcp.json` file. - -> **Cursor Settings** > **MCP** > **Add new global MCP Server** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -### 4. Restart Cursor - -Restart Cursor, and start a new chat. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/uk/substreams/_meta.js b/website/src/pages/uk/substreams/_meta.js index a8ee04618eae..658bb8c213c6 100644 --- a/website/src/pages/uk/substreams/_meta.js +++ b/website/src/pages/uk/substreams/_meta.js @@ -5,5 +5,4 @@ export default { introduction: '', developing: titles.developing ?? '', publishing: '', - sps: titles.sps ?? '', } diff --git a/website/src/pages/uk/token-api/_meta-titles.json b/website/src/pages/uk/token-api/_meta-titles.json index 7ed31e0af95d..3108ecd3ebfd 100644 --- a/website/src/pages/uk/token-api/_meta-titles.json +++ b/website/src/pages/uk/token-api/_meta-titles.json @@ -1,6 +1,7 @@ { "mcp": "MCP", "evm": "EVM Endpoints", + "svm": "SVM Endpoints", "monitoring": "Monitoring Endpoints", "faq": "FAQ" } diff --git a/website/src/pages/uk/token-api/_meta.js b/website/src/pages/uk/token-api/_meta.js index f67576d7f612..fb7f7334ea0c 100644 --- a/website/src/pages/uk/token-api/_meta.js +++ b/website/src/pages/uk/token-api/_meta.js @@ -2,8 +2,8 @@ import titles from './_meta-titles.json' export default { 'quick-start': '', - mcp: titles.mcp ?? '', evm: titles.evm ?? '', + svm: titles.svm ?? '', monitoring: titles.monitoring ?? '', faq: '', } diff --git a/website/src/pages/uk/token-api/mcp/_meta.js b/website/src/pages/uk/token-api/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/uk/token-api/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/uk/token-api/svm/_meta.js b/website/src/pages/uk/token-api/svm/_meta.js new file mode 100644 index 000000000000..1a48b82fcbf1 --- /dev/null +++ b/website/src/pages/uk/token-api/svm/_meta.js @@ -0,0 +1,5 @@ +export default { + 'get-balances-svm': '', + 'get-transfers-svm': '', + 'get-swaps-svm': '', +} diff --git a/website/src/pages/uk/token-api/svm/get-balances-svm.mdx b/website/src/pages/uk/token-api/svm/get-balances-svm.mdx new file mode 100644 index 000000000000..c2946c190bf9 --- /dev/null +++ b/website/src/pages/uk/token-api/svm/get-balances-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Balances +template: + type: openApi + apiId: tokenApi + operationId: getBalancesSvm +--- + +Provides Solana tokens balances by token account address. diff --git a/website/src/pages/uk/token-api/svm/get-swaps-svm.mdx b/website/src/pages/uk/token-api/svm/get-swaps-svm.mdx new file mode 100644 index 000000000000..95282a38ac9f --- /dev/null +++ b/website/src/pages/uk/token-api/svm/get-swaps-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsSvm +--- + +Provides Raydium swap events. diff --git a/website/src/pages/uk/token-api/svm/get-transfers-svm.mdx b/website/src/pages/uk/token-api/svm/get-transfers-svm.mdx new file mode 100644 index 000000000000..5335cdddf418 --- /dev/null +++ b/website/src/pages/uk/token-api/svm/get-transfers-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersSvm +--- + +Provides SVM transfer events. diff --git a/website/src/pages/ur/ai-suite/_meta-titles.json b/website/src/pages/ur/ai-suite/_meta-titles.json new file mode 100644 index 000000000000..5eb482a7092b --- /dev/null +++ b/website/src/pages/ur/ai-suite/_meta-titles.json @@ -0,0 +1,6 @@ +{ + "graph-assistant": "Graph Assistant", + "ai-introduction": "The Graph's AI", + "subgraph-mcp": "Subgraph MCP", + "token-api-mcp": "Token API MCP" +} diff --git a/website/src/pages/ur/ai-suite/_meta.js b/website/src/pages/ur/ai-suite/_meta.js new file mode 100644 index 000000000000..c9e51dfd35fb --- /dev/null +++ b/website/src/pages/ur/ai-suite/_meta.js @@ -0,0 +1,8 @@ +import titles from './_meta-titles.json' + +export default { + 'ai-introduction': titles['ai-introduction'], + 'graph-assistant': titles['graph-assistant'], + 'subgraph-mcp': titles['subgraph-mcp'], + 'token-api-mcp': titles['token-api-mcp'], +} diff --git a/website/src/pages/ur/ai-suite/ai-introduction.mdx b/website/src/pages/ur/ai-suite/ai-introduction.mdx new file mode 100644 index 000000000000..d25cc9f77358 --- /dev/null +++ b/website/src/pages/ur/ai-suite/ai-introduction.mdx @@ -0,0 +1,58 @@ +--- +title: The Graph's AI +--- + +Build with speed and scale faster with The Graph's AI. + +## Using AI on The Graph + +Instead of relying on static datasets or centralized APIs, you can now access live blockchain data through our **agentic** app, [Graph Assistant](/ai-suite/graph-assistant/introduction/), and use our AI-native tooling, [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/), and [Token API MCP](/ai-suite/token-api-mcp/introduction/). + +### Why Use Onchain Data with AI? + +Using onchain data with AI unlocks powerful new ways to interact with and understand blockchain ecosystems. + +- **AI for Non-Technical End Users**: AI can turn complex onchain data into accessible insights. Assistants powered by AI enable you to explore and analyze blockchain data without coding. +- **AI for Developers**: You can use AI to interact directly with The Graph's data through your agents or build AI-powered applications on top of it. This streamlines development and opens up more intuitive, dynamic use cases. + +## AI for Non-Technical/End Users + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) is a powerful **agentic** application that empowers users to easily interact with blockchain data. Ask questions in simple, natural language and get rich, AI powered insights. Both technical developers and non-technical product teams can move faster, make smarter decisions, and gain a clearer understanding than ever before. + +### Benefits of Using Graph Assistant + +- **Natural language Input**: You don't need to write complex queries or sift through dashboards. Simply ask your question in plain English and get clear, structured results. +- **Multi-source support**: Works across multiple Subgraphs and Token API. The Assistant automatically determines which data source to use, so you don't have to switch tools or manage endpoints. +- **Schema-free access**: You don't need to understand the schema. You can refer to tokens, protocols, dates, or addresses using natural language. The Assistant takes care of the rest. + +### Conversational Querying with Graph Assistant + +**Example queries:** + +- "List the top-5 swaps by USD value in the last 24 hours." +- "Give me the daily volume on Uniswap." +- "List the 20 most recently registered .eth names." + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) will eventually be a one-stop shop for interacting with The Graph. Right now, it's an agentic AI app that uses state-of-the-art AI techniques, LLMs, and MCPs to understand and answer your questions about [Subgraphs](/subgraphs/developing/subgraphs/) and [Token API](/token-api/quick-start/) data. + +## AI for Developers + +### Enable Natural Language Access to Onchain Data + +[Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) servers connect to Claude, Cline, and Cursor. They enable models to understand, query, and interact with structured onchain data using natural language. MCPs remove the need to write low-level queries or interact with APIs directly. + +### Subgraph MCP + +The [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/) server connects models to Subgraphs on The Graph Network. It allows language models to explore Subgraph schemas, execute GraphQL queries, find relevant Subgraphs by keyword or contract, and surface usage metrics using natural language. + +### Token API MCP + +The [Token API MCP](/ai-suite/token-api-mcp/introduction/) MCP server enables models to access onchain token data. It supports querying token metadata, wallet balances, transfer history, and top token holders through simple prompts. + +#### Benefits of Using Subgraph and Token API MCPs + +- Query Subgraphs and token data using natural language +- Access GraphQL schemas and token metadata without manual queries +- Find Subgraphs by keyword or contract and check 30-day usage +- Retrieve real-time data from The Graph and onchain token sources +- Get wallet balances, transfer history, and top token holders diff --git a/website/src/pages/ur/ai-suite/graph-assistant/_meta.js b/website/src/pages/ur/ai-suite/graph-assistant/_meta.js new file mode 100644 index 000000000000..74da5e0686a7 --- /dev/null +++ b/website/src/pages/ur/ai-suite/graph-assistant/_meta.js @@ -0,0 +1,6 @@ +export default { + 'quick-start': '', + introduction: '', + 'how-to-guide': '', + faq: '', +} diff --git a/website/src/pages/ur/ai-suite/graph-assistant/faq.mdx b/website/src/pages/ur/ai-suite/graph-assistant/faq.mdx new file mode 100644 index 000000000000..8addf9935524 --- /dev/null +++ b/website/src/pages/ur/ai-suite/graph-assistant/faq.mdx @@ -0,0 +1,26 @@ +--- +title: Graph Assistant FAQ +sidebarTitle: 'FAQ' +--- + +This page summarizes some of the most common questions for developers using Graph Assistant. + +1. What is The Graph Assistant? + +The Graph Assistant is an AI-powered chat interface that lets you query blockchain data in plain English. Under the hood, it translates your questions into GraphQL calls against Subgraphs and the Token API, then returns results, no coding required. + +2. What is an agentic application? + +An agentic application combines AI-driven reasoning with external data sources or APIs to take autonomous actions on your behalf. In this case, Graph Assistant acts as an “agent” that interprets your natural-language prompts, builds and dispatches GraphQL queries, and formats the results so that you don't need to write or manage queries yourself. + +3. Which networks and data does Graph Assistant support? + +The Assistant has access to Subgraphs across multiple chains. If a Subgraph is published to The Graph Network and is being indexed, the Assistant can automatically route queries to it. The Assistant also has access to the Token API on Ethereum Mainnet, BSC, Unichain, Arbitrum-One, Optimism, and Polygon. + +4. Is there a usage limit or quota? + +Yes, 10 questions per hour. + +5. What if the Assistant can't interpret my question? + +When the Assistant fails to parse your intent (for example, ambiguous token name, missing context, or an unsupported request), it will prompt you for clarification. For instance, it might ask, “Did you mean XYZ on Ethereum or XYZ on Arbitrum?” or “Please specify a date range for this query.” If you continue to see parsing errors, check that you're using correct token symbols or specifying networks and time frames clearly. diff --git a/website/src/pages/ur/ai-suite/graph-assistant/how-to-guide.mdx b/website/src/pages/ur/ai-suite/graph-assistant/how-to-guide.mdx new file mode 100644 index 000000000000..463130894ad8 --- /dev/null +++ b/website/src/pages/ur/ai-suite/graph-assistant/how-to-guide.mdx @@ -0,0 +1,56 @@ +--- +title: How To Use The Graph Assistant +sidebarTitle: 'How-to Guide' +--- + +## Overview + +You type a natural language question into the chat interface, such as: + +```yaml +'On Uniswap, return the top-10 pools by total value locked in USD.' +``` + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the underlying agents. Do not share sensitive, personal, or private information. + +### Behind the Scenes + +The Assistant: + +1. Interprets your intent +2. Maps it to the correct Subgraphs or Token API endpoint +3. Executes optimized queries +4. Returns clean, structured results + +You don't need to write queries or understand a Subgraph's schema, you simply ask. + +### Example Use Cases + +**Protocol Analytics** + +- “Compare daily active users on Aave vs. Compound in May 2025.” +- “Show me the total value locked (TVL) for XYZDAO over the last quarter.” + +**Token Insights** + +- “What are the top 10 tokens by market cap on Ethereum right now?” +- “How many XYZ did I receive between May 1 and May 15?” + +**Historical Data Retrieval** + +- “Fetch the token price history of XYZ for the last six months.” +- “What was the average gas price on Ethereum during April?” + +**Portfolio Monitoring** + +- “List my wallet’s current token balances and their USD equivalents.” +- “Calculate profit/loss on XYZ since xyz date.” + +**Cross-Chain Comparison** + +- “Show me the 7-day trading volume of XYZ on Ethereum vs. Polygon.” +- “How many XYZ swaps occurred on Arbitrum yesterday?” + +To get started follow the [quickstart](/ai-suite/graph-assistant/quick-start/) and explore its capabilities. diff --git a/website/src/pages/ur/ai-suite/graph-assistant/introduction.mdx b/website/src/pages/ur/ai-suite/graph-assistant/introduction.mdx new file mode 100644 index 000000000000..65fdf0f96028 --- /dev/null +++ b/website/src/pages/ur/ai-suite/graph-assistant/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +[Graph Assistant](https://thegraph.com/graph-assistant) (Beta) gives instant, code-free access to blockchain data, transforming natural language into precise, AI-powered queries without the need to code. + +## Overview + +[Graph Assistant](https://thegraph.com/graph-assistant) is an advanced, [agentic](/en/ai-suite/graph-assistant/faq/) easy-to-use chat interface for querying blockchain data using natural language. Unlike a basic chatbot, Graph Assistant can understand your intent, build complex queries, and execute them automatically. This gives you rich, AI-powered insights from onchain data without writing any code. + +- **Automatically** interprets user intent, generates precise queries, executes them via The Graph's Subgraphs and Token API, and presents structured, AI-powered answers without requiring any code. +- **Removes** the technical complexity found in traditional dashboards or chatbots. It provides composable insights directly from indexed Subgraphs and Token datasets. + +## Core Features + +| Feature | Description | +| --- | --- | +| **Friendly Interface** | Conversational access to blockchain data via natural language. You simply ask questions, the Assistant fetches the answer, and renders results. | +| **Backed by Subgraphs** | Uses subgraphs to index protocol-specific data like transactions, events, and protocol metrics. | +| **Backed by Token API** | Uses Token API for token-level information like balances, transfers, and metadata. | +| **No Setup Required** | No need to configure data sources or write queries. | +| **Automatic Query Building** | The Assistant performs complex queries such as fetching historical token volumes, protocol analytics, or cross-chain data and handles filtering, pagination, and joins across Subgraphs automatically. | + +## Help Shape What's Next + +This is in **beta**, and community input is essential. If you have ideas, questions, or run into anything unexpected, we'd love to hear from you: + +- Join the community on [Discord](https://discord.com/invite/graphprotocol): Provide feedback and stay in the loop with other builders. You'll be able to join the `#graph-assistant` channel to share your experience directly. +- Interested in going deeper? Reach out to become a dedicated beta tester so your specific use case can be better supported. diff --git a/website/src/pages/ur/ai-suite/graph-assistant/quick-start.mdx b/website/src/pages/ur/ai-suite/graph-assistant/quick-start.mdx new file mode 100644 index 000000000000..13f8478b8d2b --- /dev/null +++ b/website/src/pages/ur/ai-suite/graph-assistant/quick-start.mdx @@ -0,0 +1,44 @@ +--- +title: Quick Start +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +This guide provides step-by-step instructions for getting started with Graph Assistant quickly. + +## Step-by Step + +### Step 1. Create an Account + +Go to: [Graph Assistant](https://thegraph.com/graph-assistant) + +- Click Sign Up (or Log In if you already have an account). +- Use your Google, GitHub, X, email or wallet credentials to log in. +- No additional setup is required. + +### Step 2. Open the Assistant Chat + +After logging in: + +- You'll see Graph Assistant's interface. +- At the bottom of the page, you will find a chat input bar. This is where you will interact with the Assistant. + +### Step 3: Ask Your First Question + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +In the input bar, type a natural-language query (everyday language). + +Example: + +```yaml +Show me the 24-hour trading volume of XYZ token on Ethereum +``` + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the AI interface. Do not share sensitive, personal, or private information. + +The Assistant will: + +- Digest your question +- Fetch onchain data using Subgraphs or the Token API +- Return a clean, formatted response with the data you need diff --git a/website/src/pages/ur/ai-suite/subgraph-mcp/_meta.js b/website/src/pages/ur/ai-suite/subgraph-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/ur/ai-suite/subgraph-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/ur/ai-suite/subgraph-mcp/claude.mdx b/website/src/pages/ur/ai-suite/subgraph-mcp/claude.mdx new file mode 100644 index 000000000000..ff3caa4e3e7f --- /dev/null +++ b/website/src/pages/ur/ai-suite/subgraph-mcp/claude.mdx @@ -0,0 +1,169 @@ +--- +title: Claude Desktop +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data via natural language conversations with Claude. + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` diff --git a/website/src/pages/ur/ai-suite/subgraph-mcp/cline.mdx b/website/src/pages/ur/ai-suite/subgraph-mcp/cline.mdx new file mode 100644 index 000000000000..eb8044bfe991 --- /dev/null +++ b/website/src/pages/ur/ai-suite/subgraph-mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "Subgraph Server Instructions" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/ur/ai-suite/subgraph-mcp/cursor.mdx b/website/src/pages/ur/ai-suite/subgraph-mcp/cursor.mdx new file mode 100644 index 000000000000..6291caf4b06b --- /dev/null +++ b/website/src/pages/ur/ai-suite/subgraph-mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/ur/ai-suite/subgraph-mcp/introduction.mdx b/website/src/pages/ur/ai-suite/subgraph-mcp/introduction.mdx new file mode 100644 index 000000000000..da1272cf9a36 --- /dev/null +++ b/website/src/pages/ur/ai-suite/subgraph-mcp/introduction.mdx @@ -0,0 +1,22 @@ +--- +title: Subgraph MCP Introduction +sidebarTitle: 'Introduction' +--- + +Subgraph MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +It presents The Graph's Subgraph data through a set of MCP tools that any MCP-compatible client can call. With these tools, clients can search for relevant Subgraphs, inspect GraphQL schemas, and run queries against specific deployments on The Graph Network all within a single, standardized interface. + +The server itself does not hold a language model. Instead, it translates incoming MCP requests into Subgraph queries and returns the structured results, allowing the client's LLM to transform a natural-language prompt into actionable blockchain data. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Subgraph ecosystem. + +## What You Can Do + +- Access GraphQL schemas for any Subgraph on The Graph Network +- Run GraphQL queries on any Subgraph deployment +- Discover top Subgraph deployments by keyword or contract address +- Retrieve 30-day query volumes for Subgraph deployments +- Ask questions about Subgraph data without writing GraphQL manually + +The Subgraph MCP server allows smooth integration with [Claude](/ai-suite/subgraph-mcp/claude/), [Cline](/ai-suite/subgraph-mcp/cline/), or [Cursor](/ai-suite/subgraph-mcp/cursor/), making blockchain data queries with The Graph Network a conversational experience. diff --git a/website/src/pages/ur/ai-suite/token-api-mcp/_meta.js b/website/src/pages/ur/ai-suite/token-api-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/ur/ai-suite/token-api-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/ur/ai-suite/token-api-mcp/claude.mdx b/website/src/pages/ur/ai-suite/token-api-mcp/claude.mdx new file mode 100644 index 000000000000..3e21f4d7e165 --- /dev/null +++ b/website/src/pages/ur/ai-suite/token-api-mcp/claude.mdx @@ -0,0 +1,58 @@ +--- +title: Using Claude Desktop to Access the Token API via MCP +sidebarTitle: Claude Desktop +--- + +## Prerequisites + +- [Claude Desktop](https://claude.ai/download) installed. +- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. +- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. + +![Screenshot of Claude Desktop's settings panel showing the MCP server configuration option.](/img/claude-preview-token-api.png) + +## Configuration + +Create or edit your `claude_desktop_config.json` file. + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +```json label="claude_desktop_config.json" +{ + "mcpServers": { + "token-api": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "" + } + } + } +} +``` + +## Troubleshooting + +To enable logs for the MCP, use the `--verbose true` option. + +### ENOENT + +![Error dialog in Claude Desktop showing 'ENOENT' system error, indicating the npx/bunx command wasn't found in the system path.](/img/claude-ENOENT.png) + +Try to use the full path of the command instead: + +- Run `which npx` or `which bunx` to get the path of the command. +- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). + +### Server disconnected + +![Connection error notification in Claude Desktop displaying 'Server disconnected' message.](/img/claude-server-disconnect.png) + +Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. + +> You can always have a look at the full logs under `Claude/logs/mcp.log` and `Claude/logs/mcp-server-pinax.log` for more details. diff --git a/website/src/pages/ur/ai-suite/token-api-mcp/cline.mdx b/website/src/pages/ur/ai-suite/token-api-mcp/cline.mdx new file mode 100644 index 000000000000..e885d21366cd --- /dev/null +++ b/website/src/pages/ur/ai-suite/token-api-mcp/cline.mdx @@ -0,0 +1,52 @@ +--- +title: Using Cline to Access the Token API via MCP +sidebarTitle: Cline +--- + +## Prerequisites + +- [Cline](https://cline.bot/) installed. +- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. +- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. + +![Screenshot of Cline's MCP server configuration interface displaying the JSON settings file with mcp-pinax server details visible.](/img/cline-preview-token-api.png) + +## Configuration + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +```json label="cline_mcp_settings.json" +{ + "mcpServers": { + "mcp-pinax": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "" + } + } + } +} +``` + +## Troubleshooting + +To enable logs for the MCP, use the `--verbose true` option. + +### ENOENT + +![Cline error dialog showing 'ENOENT' system alert.](/img/cline-error.png) + +Try to use the full path of the command instead: + +- Run `which npx` or `which bunx` to get the path of the command. +- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). + +### Server disconnected + +![Cline connection error notification displaying server disconnection warning.](/img/cline-missing-variables.png) + +Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/ur/ai-suite/token-api-mcp/cursor.mdx b/website/src/pages/ur/ai-suite/token-api-mcp/cursor.mdx new file mode 100644 index 000000000000..68fe2fdb201c --- /dev/null +++ b/website/src/pages/ur/ai-suite/token-api-mcp/cursor.mdx @@ -0,0 +1,50 @@ +--- +title: Using Cursor to Access the Token API via MCP +sidebarTitle: Cursor +--- + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed. +- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. +- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. + +![Screenshot of Cursor's MCP configuration panel.](/img/cursor-preview-token-api.png) + +## Configuration + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +```json label="mcp.json" +{ + "mcpServers": { + "mcp-pinax": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "" + } + } + } +} +``` + +## Troubleshooting + +![Cursor IDE error notification that reads, "Failed to create client"](/img/cursor-error.png) + +To enable logs for the MCP, use the `--verbose true` option. + +### ENOENT + +Try to use the full path of the command instead: + +- Run `which npx` or `which bunx` to get the path of the command. +- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). + +### Server disconnected + +Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/ur/ai-suite/token-api-mcp/introduction.mdx b/website/src/pages/ur/ai-suite/token-api-mcp/introduction.mdx new file mode 100644 index 000000000000..b61ad0a1c485 --- /dev/null +++ b/website/src/pages/ur/ai-suite/token-api-mcp/introduction.mdx @@ -0,0 +1,23 @@ +--- +title: Token API MCP Introduction +sidebarTitle: 'Introduction' +--- + +Token API MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +This MCP server makes on-chain token data, including metadata, balances, transfers, and holder statistics, accessible through a set of MCP tools. Any compatible client can use these tools to fetch and analyze token information through a standardized interface. It connects to The Graph's hosted Token API database, enabling AI assistants to query real-time blockchain data using natural language requests that get translated into optimized SQL queries. + +The server itself does not host any language model. It simply converts MCP calls into data look-ups and returns structured results, letting the client's own LLM incorporate the results. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Token API data. + +## What You Can Do + +- Retrieve token metadata including name, symbol, decimals, total supply, and contract address +- Get token balances for any wallet address holding a supported ERC-20 token +- Fetch token transfer activity including sender, receiver, amount, and timestamp +- Identify top holders and analyze token distribution +- Ask natural language questions about token data without writing smart contract calls +- Access historical transfer data to analyze token movement over time + +The Token MCP server provides [Claude](/ai-suite/token-api-mcp/claude/), [Cline](/ai-suite/token-api-mcp/cline/), and [Cursor](/ai-suite/token-api-mcp/cursor/) with direct, conversational access to onchain token data. diff --git a/website/src/pages/ur/resources/_meta.js b/website/src/pages/ur/resources/_meta.js index aa8e2d0ec6a8..38c56cf56c43 100644 --- a/website/src/pages/ur/resources/_meta.js +++ b/website/src/pages/ur/resources/_meta.js @@ -7,5 +7,4 @@ export default { roles: titles.roles ?? '', 'migration-guides': titles['migration-guides'] ?? '', 'subgraph-studio-faq': '', - 'claude-mcp': '', } diff --git a/website/src/pages/ur/resources/claude-mcp.mdx b/website/src/pages/ur/resources/claude-mcp.mdx deleted file mode 100644 index 44ed075cffda..000000000000 --- a/website/src/pages/ur/resources/claude-mcp.mdx +++ /dev/null @@ -1,122 +0,0 @@ ---- -title: Claude MCP ---- - -This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. - -## What You Can Do - -With these integrations, you can: - -- **Token API**: Access token and wallet information across multiple blockchains -- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries - -## Prerequisites - -- [Node.js](https://nodejs.org/en/download/) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed -- API keys: - - Token API key from [The Graph Market](https://thegraph.market/) - - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -## Configuration Steps - -### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** - -Paths by operating system: - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -### 2. Add Configuration - -Replace the contents of the existing config file with: - -```json -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "ACCESS_TOKEN" - } - }, - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Keys - -Replace: - -- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) -- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -### 4. Save and Restart - -- Save the configuration file -- Restart Claude Desktop - -### 5. Add The Graph Resources in Claude - -After configuration: - -1. Start a new conversation in Claude Desktop -2. Click on the context menu (top right) -3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP - -> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. - -### 6. Run Queries - -Here are some example queries you can try after setting up the resources: - -### Subgraph Queries - -``` -What are the top pools in Uniswap? -``` - -``` -Who are the top Delegators of The Graph Protocol? -``` - -``` -Please make a bar chart for the number of active loans in Compound for the last 7 days -``` - -### Token API Queries - -``` -Show me the current price of ETH -``` - -``` -What are the top tokens by market cap on Ethereum? -``` - -``` -Analyze this wallet address: 0x... -``` - -## Troubleshooting - -If you encounter issues: - -1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal -2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file -3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs -4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop diff --git a/website/src/pages/ur/subgraphs/_meta.js b/website/src/pages/ur/subgraphs/_meta.js index 4365293ffc72..45841d5f3355 100644 --- a/website/src/pages/ur/subgraphs/_meta.js +++ b/website/src/pages/ur/subgraphs/_meta.js @@ -6,7 +6,6 @@ export default { querying: titles.querying ?? '', developing: titles.developing ?? '', billing: '', - mcp: titles.mcp ?? '', guides: titles.guides, 'best-practices': titles['best-practices'], 'fair-use-policy': '', diff --git a/website/src/pages/ur/subgraphs/mcp/_meta.js b/website/src/pages/ur/subgraphs/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/ur/subgraphs/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/ur/subgraphs/mcp/claude.mdx b/website/src/pages/ur/subgraphs/mcp/claude.mdx deleted file mode 100644 index 027b272cb942..000000000000 --- a/website/src/pages/ur/subgraphs/mcp/claude.mdx +++ /dev/null @@ -1,179 +0,0 @@ ---- -title: Claude Desktop ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. - -## What You Can Do - -The Subgraph MCP integration enables you to: - -- Access the GraphQL schema for any Subgraph on The Graph Network -- Execute GraphQL queries against any Subgraph deployment -- Find top Subgraph deployments for a given keyword or contract address -- Get 30-day query volume for Subgraph deployments -- Ask natural language questions about Subgraph data without writing GraphQL queries manually - -## Prerequisites - -- [Node.js](https://nodejs.org/en) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) - -## Installation Options - -### Option 1: Using npx (Recommended) - -#### Configuration Steps using npx - -#### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Settings** > **Developer** > **Edit Config** - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -#### 2. Add Configuration - -Paste the following settings into your config file: - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -#### 3. Add Your Gateway API Key - -Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). - -#### 4. Save and Restart - -Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. - -### Option 2: Building from Source - -#### Requirements - -- Rust (latest stable version recommended: 1.75+) - ```bash - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - ``` - Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). - -#### Installation Steps - -1. **Clone and Build the Repository** - - ```bash - git clone git@github.com:graphops/subgraph-mcp.git - cd subgraph-mcp - cargo build --release - ``` - -2. **Find the Command Path** - - After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - - Run `pwd` to get the full path - - Combine the output with `/target/release/subgraph-mcp` - -3. **Configure Claude Desktop** - - Open your `claude_desktop_config.json` file as described above and add: - - ```json - { - "mcpServers": { - "subgraph": { - "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", - "env": { - "GATEWAY_API_KEY": "your-api-key-here" - } - } - } - } - ``` - - Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. - -## Using The Graph Resource in Claude - -After configuring Claude Desktop: - -1. Restart Claude Desktop -2. Start a new conversation -3. Click on the context menu (top right) -4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context - -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. - -## Troubleshooting - -To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal -- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments -- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees - -## Key Identifier Types - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -``` -Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one -``` diff --git a/website/src/pages/ur/subgraphs/mcp/cline.mdx b/website/src/pages/ur/subgraphs/mcp/cline.mdx deleted file mode 100644 index 156221d9a127..000000000000 --- a/website/src/pages/ur/subgraphs/mcp/cline.mdx +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: Cline ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. - -## Prerequisites - -- [Cline](https://cline.bot/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `cline_mcp_settings.json` file. - -> **MCP Servers** > **Installed** > **Configure MCP Servers** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -## Using The Graph Resource in Cline - -After configuring Cline: - -1. Restart Cline -2. Start a new conversation -3. Enable the Subgraph MCP from the context menu -4. Add "Subgraph Server Instructions" as a resource to your chat context - -## Available Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/ur/subgraphs/mcp/cursor.mdx b/website/src/pages/ur/subgraphs/mcp/cursor.mdx deleted file mode 100644 index 298f43ece048..000000000000 --- a/website/src/pages/ur/subgraphs/mcp/cursor.mdx +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Cursor ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. - -## Prerequisites - -- [Cursor](https://www.cursor.com/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `~/.cursor/mcp.json` file. - -> **Cursor Settings** > **MCP** > **Add new global MCP Server** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -### 4. Restart Cursor - -Restart Cursor, and start a new chat. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/ur/substreams/_meta.js b/website/src/pages/ur/substreams/_meta.js index a8ee04618eae..658bb8c213c6 100644 --- a/website/src/pages/ur/substreams/_meta.js +++ b/website/src/pages/ur/substreams/_meta.js @@ -5,5 +5,4 @@ export default { introduction: '', developing: titles.developing ?? '', publishing: '', - sps: titles.sps ?? '', } diff --git a/website/src/pages/ur/token-api/_meta-titles.json b/website/src/pages/ur/token-api/_meta-titles.json index 7ed31e0af95d..3108ecd3ebfd 100644 --- a/website/src/pages/ur/token-api/_meta-titles.json +++ b/website/src/pages/ur/token-api/_meta-titles.json @@ -1,6 +1,7 @@ { "mcp": "MCP", "evm": "EVM Endpoints", + "svm": "SVM Endpoints", "monitoring": "Monitoring Endpoints", "faq": "FAQ" } diff --git a/website/src/pages/ur/token-api/_meta.js b/website/src/pages/ur/token-api/_meta.js index f67576d7f612..fb7f7334ea0c 100644 --- a/website/src/pages/ur/token-api/_meta.js +++ b/website/src/pages/ur/token-api/_meta.js @@ -2,8 +2,8 @@ import titles from './_meta-titles.json' export default { 'quick-start': '', - mcp: titles.mcp ?? '', evm: titles.evm ?? '', + svm: titles.svm ?? '', monitoring: titles.monitoring ?? '', faq: '', } diff --git a/website/src/pages/ur/token-api/mcp/_meta.js b/website/src/pages/ur/token-api/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/ur/token-api/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/ur/token-api/mcp/claude.mdx b/website/src/pages/ur/token-api/mcp/claude.mdx deleted file mode 100644 index 62db0553be05..000000000000 --- a/website/src/pages/ur/token-api/mcp/claude.mdx +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: Using Claude Desktop to Access the Token API via MCP -sidebarTitle: Claude Desktop ---- - -## Prerequisites - -- [Claude Desktop](https://claude.ai/download) installed. -- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. -- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. - -![Screenshot of Claude Desktop's settings panel showing the MCP server configuration option.](/img/claude-preview-token-api.png) - -## کنفیگریشن - -Create or edit your `claude_desktop_config.json` file. - -> **Settings** > **Developer** > **Edit Config** - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -```json label="claude_desktop_config.json" -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -## Troubleshooting - -To enable logs for the MCP, use the `--verbose true` option. - -### ENOENT - -![Error dialog in Claude Desktop showing 'ENOENT' system error, indicating the npx/bunx command wasn't found in the system path.](/img/claude-ENOENT.png) - -Try to use the full path of the command instead: - -- Run `which npx` or `which bunx` to get the path of the command. -- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). - -### Server disconnected - -![Connection error notification in Claude Desktop displaying 'Server disconnected' message.](/img/claude-server-disconnect.png) - -Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. - -> You can always have a look at the full logs under `Claude/logs/mcp.log` and `Claude/logs/mcp-server-pinax.log` for more details. diff --git a/website/src/pages/ur/token-api/mcp/cline.mdx b/website/src/pages/ur/token-api/mcp/cline.mdx deleted file mode 100644 index a39dfd6d2400..000000000000 --- a/website/src/pages/ur/token-api/mcp/cline.mdx +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Using Cline to Access the Token API via MCP -sidebarTitle: Cline ---- - -## Prerequisites - -- [Cline](https://cline.bot/) installed. -- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. -- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. - -![Screenshot of Cline's MCP server configuration interface displaying the JSON settings file with mcp-pinax server details visible.](/img/cline-preview-token-api.png) - -## کنفیگریشن - -Create or edit your `cline_mcp_settings.json` file. - -> **MCP Servers** > **Installed** > **Configure MCP Servers** - -```json label="cline_mcp_settings.json" -{ - "mcpServers": { - "mcp-pinax": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -## Troubleshooting - -To enable logs for the MCP, use the `--verbose true` option. - -### ENOENT - -![Cline error dialog showing 'ENOENT' system alert.](/img/cline-error.png) - -Try to use the full path of the command instead: - -- Run `which npx` or `which bunx` to get the path of the command. -- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). - -### Server disconnected - -![Cline connection error notification displaying server disconnection warning.](/img/cline-missing-variables.png) - -Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/ur/token-api/mcp/cursor.mdx b/website/src/pages/ur/token-api/mcp/cursor.mdx deleted file mode 100644 index 58afdbc0b33c..000000000000 --- a/website/src/pages/ur/token-api/mcp/cursor.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Using Cursor to Access the Token API via MCP -sidebarTitle: Cursor ---- - -## Prerequisites - -- [Cursor](https://www.cursor.com/) installed. -- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. -- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. - -![Screenshot of Cursor's MCP configuration panel.](/img/cursor-preview-token-api.png) - -## کنفیگریشن - -Create or edit your `~/.cursor/mcp.json` file. - -> **Cursor Settings** > **MCP** > **Add new global MCP Server** - -```json label="mcp.json" -{ - "mcpServers": { - "mcp-pinax": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -## Troubleshooting - -![Cursor IDE error notification that reads, "Failed to create client"](/img/cursor-error.png) - -To enable logs for the MCP, use the `--verbose true` option. - -### ENOENT - -Try to use the full path of the command instead: - -- Run `which npx` or `which bunx` to get the path of the command. -- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). - -### Server disconnected - -Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/ur/token-api/svm/_meta.js b/website/src/pages/ur/token-api/svm/_meta.js new file mode 100644 index 000000000000..1a48b82fcbf1 --- /dev/null +++ b/website/src/pages/ur/token-api/svm/_meta.js @@ -0,0 +1,5 @@ +export default { + 'get-balances-svm': '', + 'get-transfers-svm': '', + 'get-swaps-svm': '', +} diff --git a/website/src/pages/ur/token-api/svm/get-balances-svm.mdx b/website/src/pages/ur/token-api/svm/get-balances-svm.mdx new file mode 100644 index 000000000000..c2946c190bf9 --- /dev/null +++ b/website/src/pages/ur/token-api/svm/get-balances-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Balances +template: + type: openApi + apiId: tokenApi + operationId: getBalancesSvm +--- + +Provides Solana tokens balances by token account address. diff --git a/website/src/pages/ur/token-api/svm/get-swaps-svm.mdx b/website/src/pages/ur/token-api/svm/get-swaps-svm.mdx new file mode 100644 index 000000000000..95282a38ac9f --- /dev/null +++ b/website/src/pages/ur/token-api/svm/get-swaps-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsSvm +--- + +Provides Raydium swap events. diff --git a/website/src/pages/ur/token-api/svm/get-transfers-svm.mdx b/website/src/pages/ur/token-api/svm/get-transfers-svm.mdx new file mode 100644 index 000000000000..5335cdddf418 --- /dev/null +++ b/website/src/pages/ur/token-api/svm/get-transfers-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersSvm +--- + +Provides SVM transfer events. diff --git a/website/src/pages/vi/ai-suite/_meta-titles.json b/website/src/pages/vi/ai-suite/_meta-titles.json new file mode 100644 index 000000000000..5eb482a7092b --- /dev/null +++ b/website/src/pages/vi/ai-suite/_meta-titles.json @@ -0,0 +1,6 @@ +{ + "graph-assistant": "Graph Assistant", + "ai-introduction": "The Graph's AI", + "subgraph-mcp": "Subgraph MCP", + "token-api-mcp": "Token API MCP" +} diff --git a/website/src/pages/vi/ai-suite/_meta.js b/website/src/pages/vi/ai-suite/_meta.js new file mode 100644 index 000000000000..c9e51dfd35fb --- /dev/null +++ b/website/src/pages/vi/ai-suite/_meta.js @@ -0,0 +1,8 @@ +import titles from './_meta-titles.json' + +export default { + 'ai-introduction': titles['ai-introduction'], + 'graph-assistant': titles['graph-assistant'], + 'subgraph-mcp': titles['subgraph-mcp'], + 'token-api-mcp': titles['token-api-mcp'], +} diff --git a/website/src/pages/vi/ai-suite/ai-introduction.mdx b/website/src/pages/vi/ai-suite/ai-introduction.mdx new file mode 100644 index 000000000000..d25cc9f77358 --- /dev/null +++ b/website/src/pages/vi/ai-suite/ai-introduction.mdx @@ -0,0 +1,58 @@ +--- +title: The Graph's AI +--- + +Build with speed and scale faster with The Graph's AI. + +## Using AI on The Graph + +Instead of relying on static datasets or centralized APIs, you can now access live blockchain data through our **agentic** app, [Graph Assistant](/ai-suite/graph-assistant/introduction/), and use our AI-native tooling, [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/), and [Token API MCP](/ai-suite/token-api-mcp/introduction/). + +### Why Use Onchain Data with AI? + +Using onchain data with AI unlocks powerful new ways to interact with and understand blockchain ecosystems. + +- **AI for Non-Technical End Users**: AI can turn complex onchain data into accessible insights. Assistants powered by AI enable you to explore and analyze blockchain data without coding. +- **AI for Developers**: You can use AI to interact directly with The Graph's data through your agents or build AI-powered applications on top of it. This streamlines development and opens up more intuitive, dynamic use cases. + +## AI for Non-Technical/End Users + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) is a powerful **agentic** application that empowers users to easily interact with blockchain data. Ask questions in simple, natural language and get rich, AI powered insights. Both technical developers and non-technical product teams can move faster, make smarter decisions, and gain a clearer understanding than ever before. + +### Benefits of Using Graph Assistant + +- **Natural language Input**: You don't need to write complex queries or sift through dashboards. Simply ask your question in plain English and get clear, structured results. +- **Multi-source support**: Works across multiple Subgraphs and Token API. The Assistant automatically determines which data source to use, so you don't have to switch tools or manage endpoints. +- **Schema-free access**: You don't need to understand the schema. You can refer to tokens, protocols, dates, or addresses using natural language. The Assistant takes care of the rest. + +### Conversational Querying with Graph Assistant + +**Example queries:** + +- "List the top-5 swaps by USD value in the last 24 hours." +- "Give me the daily volume on Uniswap." +- "List the 20 most recently registered .eth names." + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) will eventually be a one-stop shop for interacting with The Graph. Right now, it's an agentic AI app that uses state-of-the-art AI techniques, LLMs, and MCPs to understand and answer your questions about [Subgraphs](/subgraphs/developing/subgraphs/) and [Token API](/token-api/quick-start/) data. + +## AI for Developers + +### Enable Natural Language Access to Onchain Data + +[Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) servers connect to Claude, Cline, and Cursor. They enable models to understand, query, and interact with structured onchain data using natural language. MCPs remove the need to write low-level queries or interact with APIs directly. + +### Subgraph MCP + +The [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/) server connects models to Subgraphs on The Graph Network. It allows language models to explore Subgraph schemas, execute GraphQL queries, find relevant Subgraphs by keyword or contract, and surface usage metrics using natural language. + +### Token API MCP + +The [Token API MCP](/ai-suite/token-api-mcp/introduction/) MCP server enables models to access onchain token data. It supports querying token metadata, wallet balances, transfer history, and top token holders through simple prompts. + +#### Benefits of Using Subgraph and Token API MCPs + +- Query Subgraphs and token data using natural language +- Access GraphQL schemas and token metadata without manual queries +- Find Subgraphs by keyword or contract and check 30-day usage +- Retrieve real-time data from The Graph and onchain token sources +- Get wallet balances, transfer history, and top token holders diff --git a/website/src/pages/vi/ai-suite/graph-assistant/_meta.js b/website/src/pages/vi/ai-suite/graph-assistant/_meta.js new file mode 100644 index 000000000000..74da5e0686a7 --- /dev/null +++ b/website/src/pages/vi/ai-suite/graph-assistant/_meta.js @@ -0,0 +1,6 @@ +export default { + 'quick-start': '', + introduction: '', + 'how-to-guide': '', + faq: '', +} diff --git a/website/src/pages/vi/ai-suite/graph-assistant/faq.mdx b/website/src/pages/vi/ai-suite/graph-assistant/faq.mdx new file mode 100644 index 000000000000..8addf9935524 --- /dev/null +++ b/website/src/pages/vi/ai-suite/graph-assistant/faq.mdx @@ -0,0 +1,26 @@ +--- +title: Graph Assistant FAQ +sidebarTitle: 'FAQ' +--- + +This page summarizes some of the most common questions for developers using Graph Assistant. + +1. What is The Graph Assistant? + +The Graph Assistant is an AI-powered chat interface that lets you query blockchain data in plain English. Under the hood, it translates your questions into GraphQL calls against Subgraphs and the Token API, then returns results, no coding required. + +2. What is an agentic application? + +An agentic application combines AI-driven reasoning with external data sources or APIs to take autonomous actions on your behalf. In this case, Graph Assistant acts as an “agent” that interprets your natural-language prompts, builds and dispatches GraphQL queries, and formats the results so that you don't need to write or manage queries yourself. + +3. Which networks and data does Graph Assistant support? + +The Assistant has access to Subgraphs across multiple chains. If a Subgraph is published to The Graph Network and is being indexed, the Assistant can automatically route queries to it. The Assistant also has access to the Token API on Ethereum Mainnet, BSC, Unichain, Arbitrum-One, Optimism, and Polygon. + +4. Is there a usage limit or quota? + +Yes, 10 questions per hour. + +5. What if the Assistant can't interpret my question? + +When the Assistant fails to parse your intent (for example, ambiguous token name, missing context, or an unsupported request), it will prompt you for clarification. For instance, it might ask, “Did you mean XYZ on Ethereum or XYZ on Arbitrum?” or “Please specify a date range for this query.” If you continue to see parsing errors, check that you're using correct token symbols or specifying networks and time frames clearly. diff --git a/website/src/pages/vi/ai-suite/graph-assistant/how-to-guide.mdx b/website/src/pages/vi/ai-suite/graph-assistant/how-to-guide.mdx new file mode 100644 index 000000000000..463130894ad8 --- /dev/null +++ b/website/src/pages/vi/ai-suite/graph-assistant/how-to-guide.mdx @@ -0,0 +1,56 @@ +--- +title: How To Use The Graph Assistant +sidebarTitle: 'How-to Guide' +--- + +## Overview + +You type a natural language question into the chat interface, such as: + +```yaml +'On Uniswap, return the top-10 pools by total value locked in USD.' +``` + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the underlying agents. Do not share sensitive, personal, or private information. + +### Behind the Scenes + +The Assistant: + +1. Interprets your intent +2. Maps it to the correct Subgraphs or Token API endpoint +3. Executes optimized queries +4. Returns clean, structured results + +You don't need to write queries or understand a Subgraph's schema, you simply ask. + +### Example Use Cases + +**Protocol Analytics** + +- “Compare daily active users on Aave vs. Compound in May 2025.” +- “Show me the total value locked (TVL) for XYZDAO over the last quarter.” + +**Token Insights** + +- “What are the top 10 tokens by market cap on Ethereum right now?” +- “How many XYZ did I receive between May 1 and May 15?” + +**Historical Data Retrieval** + +- “Fetch the token price history of XYZ for the last six months.” +- “What was the average gas price on Ethereum during April?” + +**Portfolio Monitoring** + +- “List my wallet’s current token balances and their USD equivalents.” +- “Calculate profit/loss on XYZ since xyz date.” + +**Cross-Chain Comparison** + +- “Show me the 7-day trading volume of XYZ on Ethereum vs. Polygon.” +- “How many XYZ swaps occurred on Arbitrum yesterday?” + +To get started follow the [quickstart](/ai-suite/graph-assistant/quick-start/) and explore its capabilities. diff --git a/website/src/pages/vi/ai-suite/graph-assistant/introduction.mdx b/website/src/pages/vi/ai-suite/graph-assistant/introduction.mdx new file mode 100644 index 000000000000..65fdf0f96028 --- /dev/null +++ b/website/src/pages/vi/ai-suite/graph-assistant/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +[Graph Assistant](https://thegraph.com/graph-assistant) (Beta) gives instant, code-free access to blockchain data, transforming natural language into precise, AI-powered queries without the need to code. + +## Overview + +[Graph Assistant](https://thegraph.com/graph-assistant) is an advanced, [agentic](/en/ai-suite/graph-assistant/faq/) easy-to-use chat interface for querying blockchain data using natural language. Unlike a basic chatbot, Graph Assistant can understand your intent, build complex queries, and execute them automatically. This gives you rich, AI-powered insights from onchain data without writing any code. + +- **Automatically** interprets user intent, generates precise queries, executes them via The Graph's Subgraphs and Token API, and presents structured, AI-powered answers without requiring any code. +- **Removes** the technical complexity found in traditional dashboards or chatbots. It provides composable insights directly from indexed Subgraphs and Token datasets. + +## Core Features + +| Feature | Description | +| --- | --- | +| **Friendly Interface** | Conversational access to blockchain data via natural language. You simply ask questions, the Assistant fetches the answer, and renders results. | +| **Backed by Subgraphs** | Uses subgraphs to index protocol-specific data like transactions, events, and protocol metrics. | +| **Backed by Token API** | Uses Token API for token-level information like balances, transfers, and metadata. | +| **No Setup Required** | No need to configure data sources or write queries. | +| **Automatic Query Building** | The Assistant performs complex queries such as fetching historical token volumes, protocol analytics, or cross-chain data and handles filtering, pagination, and joins across Subgraphs automatically. | + +## Help Shape What's Next + +This is in **beta**, and community input is essential. If you have ideas, questions, or run into anything unexpected, we'd love to hear from you: + +- Join the community on [Discord](https://discord.com/invite/graphprotocol): Provide feedback and stay in the loop with other builders. You'll be able to join the `#graph-assistant` channel to share your experience directly. +- Interested in going deeper? Reach out to become a dedicated beta tester so your specific use case can be better supported. diff --git a/website/src/pages/vi/ai-suite/graph-assistant/quick-start.mdx b/website/src/pages/vi/ai-suite/graph-assistant/quick-start.mdx new file mode 100644 index 000000000000..13f8478b8d2b --- /dev/null +++ b/website/src/pages/vi/ai-suite/graph-assistant/quick-start.mdx @@ -0,0 +1,44 @@ +--- +title: Quick Start +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +This guide provides step-by-step instructions for getting started with Graph Assistant quickly. + +## Step-by Step + +### Step 1. Create an Account + +Go to: [Graph Assistant](https://thegraph.com/graph-assistant) + +- Click Sign Up (or Log In if you already have an account). +- Use your Google, GitHub, X, email or wallet credentials to log in. +- No additional setup is required. + +### Step 2. Open the Assistant Chat + +After logging in: + +- You'll see Graph Assistant's interface. +- At the bottom of the page, you will find a chat input bar. This is where you will interact with the Assistant. + +### Step 3: Ask Your First Question + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +In the input bar, type a natural-language query (everyday language). + +Example: + +```yaml +Show me the 24-hour trading volume of XYZ token on Ethereum +``` + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the AI interface. Do not share sensitive, personal, or private information. + +The Assistant will: + +- Digest your question +- Fetch onchain data using Subgraphs or the Token API +- Return a clean, formatted response with the data you need diff --git a/website/src/pages/vi/ai-suite/subgraph-mcp/_meta.js b/website/src/pages/vi/ai-suite/subgraph-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/vi/ai-suite/subgraph-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/vi/ai-suite/subgraph-mcp/claude.mdx b/website/src/pages/vi/ai-suite/subgraph-mcp/claude.mdx new file mode 100644 index 000000000000..ff3caa4e3e7f --- /dev/null +++ b/website/src/pages/vi/ai-suite/subgraph-mcp/claude.mdx @@ -0,0 +1,169 @@ +--- +title: Claude Desktop +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data via natural language conversations with Claude. + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` diff --git a/website/src/pages/vi/ai-suite/subgraph-mcp/cline.mdx b/website/src/pages/vi/ai-suite/subgraph-mcp/cline.mdx new file mode 100644 index 000000000000..eb8044bfe991 --- /dev/null +++ b/website/src/pages/vi/ai-suite/subgraph-mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "Subgraph Server Instructions" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/vi/ai-suite/subgraph-mcp/cursor.mdx b/website/src/pages/vi/ai-suite/subgraph-mcp/cursor.mdx new file mode 100644 index 000000000000..6291caf4b06b --- /dev/null +++ b/website/src/pages/vi/ai-suite/subgraph-mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/vi/ai-suite/subgraph-mcp/introduction.mdx b/website/src/pages/vi/ai-suite/subgraph-mcp/introduction.mdx new file mode 100644 index 000000000000..da1272cf9a36 --- /dev/null +++ b/website/src/pages/vi/ai-suite/subgraph-mcp/introduction.mdx @@ -0,0 +1,22 @@ +--- +title: Subgraph MCP Introduction +sidebarTitle: 'Introduction' +--- + +Subgraph MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +It presents The Graph's Subgraph data through a set of MCP tools that any MCP-compatible client can call. With these tools, clients can search for relevant Subgraphs, inspect GraphQL schemas, and run queries against specific deployments on The Graph Network all within a single, standardized interface. + +The server itself does not hold a language model. Instead, it translates incoming MCP requests into Subgraph queries and returns the structured results, allowing the client's LLM to transform a natural-language prompt into actionable blockchain data. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Subgraph ecosystem. + +## What You Can Do + +- Access GraphQL schemas for any Subgraph on The Graph Network +- Run GraphQL queries on any Subgraph deployment +- Discover top Subgraph deployments by keyword or contract address +- Retrieve 30-day query volumes for Subgraph deployments +- Ask questions about Subgraph data without writing GraphQL manually + +The Subgraph MCP server allows smooth integration with [Claude](/ai-suite/subgraph-mcp/claude/), [Cline](/ai-suite/subgraph-mcp/cline/), or [Cursor](/ai-suite/subgraph-mcp/cursor/), making blockchain data queries with The Graph Network a conversational experience. diff --git a/website/src/pages/vi/ai-suite/token-api-mcp/_meta.js b/website/src/pages/vi/ai-suite/token-api-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/vi/ai-suite/token-api-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/vi/ai-suite/token-api-mcp/claude.mdx b/website/src/pages/vi/ai-suite/token-api-mcp/claude.mdx new file mode 100644 index 000000000000..3e21f4d7e165 --- /dev/null +++ b/website/src/pages/vi/ai-suite/token-api-mcp/claude.mdx @@ -0,0 +1,58 @@ +--- +title: Using Claude Desktop to Access the Token API via MCP +sidebarTitle: Claude Desktop +--- + +## Prerequisites + +- [Claude Desktop](https://claude.ai/download) installed. +- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. +- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. + +![Screenshot of Claude Desktop's settings panel showing the MCP server configuration option.](/img/claude-preview-token-api.png) + +## Configuration + +Create or edit your `claude_desktop_config.json` file. + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +```json label="claude_desktop_config.json" +{ + "mcpServers": { + "token-api": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "" + } + } + } +} +``` + +## Troubleshooting + +To enable logs for the MCP, use the `--verbose true` option. + +### ENOENT + +![Error dialog in Claude Desktop showing 'ENOENT' system error, indicating the npx/bunx command wasn't found in the system path.](/img/claude-ENOENT.png) + +Try to use the full path of the command instead: + +- Run `which npx` or `which bunx` to get the path of the command. +- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). + +### Server disconnected + +![Connection error notification in Claude Desktop displaying 'Server disconnected' message.](/img/claude-server-disconnect.png) + +Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. + +> You can always have a look at the full logs under `Claude/logs/mcp.log` and `Claude/logs/mcp-server-pinax.log` for more details. diff --git a/website/src/pages/vi/ai-suite/token-api-mcp/cline.mdx b/website/src/pages/vi/ai-suite/token-api-mcp/cline.mdx new file mode 100644 index 000000000000..e885d21366cd --- /dev/null +++ b/website/src/pages/vi/ai-suite/token-api-mcp/cline.mdx @@ -0,0 +1,52 @@ +--- +title: Using Cline to Access the Token API via MCP +sidebarTitle: Cline +--- + +## Prerequisites + +- [Cline](https://cline.bot/) installed. +- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. +- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. + +![Screenshot of Cline's MCP server configuration interface displaying the JSON settings file with mcp-pinax server details visible.](/img/cline-preview-token-api.png) + +## Configuration + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +```json label="cline_mcp_settings.json" +{ + "mcpServers": { + "mcp-pinax": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "" + } + } + } +} +``` + +## Troubleshooting + +To enable logs for the MCP, use the `--verbose true` option. + +### ENOENT + +![Cline error dialog showing 'ENOENT' system alert.](/img/cline-error.png) + +Try to use the full path of the command instead: + +- Run `which npx` or `which bunx` to get the path of the command. +- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). + +### Server disconnected + +![Cline connection error notification displaying server disconnection warning.](/img/cline-missing-variables.png) + +Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/vi/ai-suite/token-api-mcp/cursor.mdx b/website/src/pages/vi/ai-suite/token-api-mcp/cursor.mdx new file mode 100644 index 000000000000..68fe2fdb201c --- /dev/null +++ b/website/src/pages/vi/ai-suite/token-api-mcp/cursor.mdx @@ -0,0 +1,50 @@ +--- +title: Using Cursor to Access the Token API via MCP +sidebarTitle: Cursor +--- + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed. +- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. +- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. + +![Screenshot of Cursor's MCP configuration panel.](/img/cursor-preview-token-api.png) + +## Configuration + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +```json label="mcp.json" +{ + "mcpServers": { + "mcp-pinax": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "" + } + } + } +} +``` + +## Troubleshooting + +![Cursor IDE error notification that reads, "Failed to create client"](/img/cursor-error.png) + +To enable logs for the MCP, use the `--verbose true` option. + +### ENOENT + +Try to use the full path of the command instead: + +- Run `which npx` or `which bunx` to get the path of the command. +- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). + +### Server disconnected + +Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/vi/ai-suite/token-api-mcp/introduction.mdx b/website/src/pages/vi/ai-suite/token-api-mcp/introduction.mdx new file mode 100644 index 000000000000..b61ad0a1c485 --- /dev/null +++ b/website/src/pages/vi/ai-suite/token-api-mcp/introduction.mdx @@ -0,0 +1,23 @@ +--- +title: Token API MCP Introduction +sidebarTitle: 'Introduction' +--- + +Token API MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +This MCP server makes on-chain token data, including metadata, balances, transfers, and holder statistics, accessible through a set of MCP tools. Any compatible client can use these tools to fetch and analyze token information through a standardized interface. It connects to The Graph's hosted Token API database, enabling AI assistants to query real-time blockchain data using natural language requests that get translated into optimized SQL queries. + +The server itself does not host any language model. It simply converts MCP calls into data look-ups and returns structured results, letting the client's own LLM incorporate the results. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Token API data. + +## What You Can Do + +- Retrieve token metadata including name, symbol, decimals, total supply, and contract address +- Get token balances for any wallet address holding a supported ERC-20 token +- Fetch token transfer activity including sender, receiver, amount, and timestamp +- Identify top holders and analyze token distribution +- Ask natural language questions about token data without writing smart contract calls +- Access historical transfer data to analyze token movement over time + +The Token MCP server provides [Claude](/ai-suite/token-api-mcp/claude/), [Cline](/ai-suite/token-api-mcp/cline/), and [Cursor](/ai-suite/token-api-mcp/cursor/) with direct, conversational access to onchain token data. diff --git a/website/src/pages/vi/resources/_meta.js b/website/src/pages/vi/resources/_meta.js index aa8e2d0ec6a8..38c56cf56c43 100644 --- a/website/src/pages/vi/resources/_meta.js +++ b/website/src/pages/vi/resources/_meta.js @@ -7,5 +7,4 @@ export default { roles: titles.roles ?? '', 'migration-guides': titles['migration-guides'] ?? '', 'subgraph-studio-faq': '', - 'claude-mcp': '', } diff --git a/website/src/pages/vi/resources/claude-mcp.mdx b/website/src/pages/vi/resources/claude-mcp.mdx deleted file mode 100644 index 44ed075cffda..000000000000 --- a/website/src/pages/vi/resources/claude-mcp.mdx +++ /dev/null @@ -1,122 +0,0 @@ ---- -title: Claude MCP ---- - -This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. - -## What You Can Do - -With these integrations, you can: - -- **Token API**: Access token and wallet information across multiple blockchains -- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries - -## Prerequisites - -- [Node.js](https://nodejs.org/en/download/) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed -- API keys: - - Token API key from [The Graph Market](https://thegraph.market/) - - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -## Configuration Steps - -### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** - -Paths by operating system: - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -### 2. Add Configuration - -Replace the contents of the existing config file with: - -```json -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "ACCESS_TOKEN" - } - }, - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Keys - -Replace: - -- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) -- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -### 4. Save and Restart - -- Save the configuration file -- Restart Claude Desktop - -### 5. Add The Graph Resources in Claude - -After configuration: - -1. Start a new conversation in Claude Desktop -2. Click on the context menu (top right) -3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP - -> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. - -### 6. Run Queries - -Here are some example queries you can try after setting up the resources: - -### Subgraph Queries - -``` -What are the top pools in Uniswap? -``` - -``` -Who are the top Delegators of The Graph Protocol? -``` - -``` -Please make a bar chart for the number of active loans in Compound for the last 7 days -``` - -### Token API Queries - -``` -Show me the current price of ETH -``` - -``` -What are the top tokens by market cap on Ethereum? -``` - -``` -Analyze this wallet address: 0x... -``` - -## Troubleshooting - -If you encounter issues: - -1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal -2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file -3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs -4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop diff --git a/website/src/pages/vi/subgraphs/_meta.js b/website/src/pages/vi/subgraphs/_meta.js index 4365293ffc72..45841d5f3355 100644 --- a/website/src/pages/vi/subgraphs/_meta.js +++ b/website/src/pages/vi/subgraphs/_meta.js @@ -6,7 +6,6 @@ export default { querying: titles.querying ?? '', developing: titles.developing ?? '', billing: '', - mcp: titles.mcp ?? '', guides: titles.guides, 'best-practices': titles['best-practices'], 'fair-use-policy': '', diff --git a/website/src/pages/vi/subgraphs/mcp/_meta.js b/website/src/pages/vi/subgraphs/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/vi/subgraphs/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/vi/subgraphs/mcp/claude.mdx b/website/src/pages/vi/subgraphs/mcp/claude.mdx deleted file mode 100644 index 027b272cb942..000000000000 --- a/website/src/pages/vi/subgraphs/mcp/claude.mdx +++ /dev/null @@ -1,179 +0,0 @@ ---- -title: Claude Desktop ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. - -## What You Can Do - -The Subgraph MCP integration enables you to: - -- Access the GraphQL schema for any Subgraph on The Graph Network -- Execute GraphQL queries against any Subgraph deployment -- Find top Subgraph deployments for a given keyword or contract address -- Get 30-day query volume for Subgraph deployments -- Ask natural language questions about Subgraph data without writing GraphQL queries manually - -## Prerequisites - -- [Node.js](https://nodejs.org/en) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) - -## Installation Options - -### Option 1: Using npx (Recommended) - -#### Configuration Steps using npx - -#### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Settings** > **Developer** > **Edit Config** - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -#### 2. Add Configuration - -Paste the following settings into your config file: - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -#### 3. Add Your Gateway API Key - -Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). - -#### 4. Save and Restart - -Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. - -### Option 2: Building from Source - -#### Requirements - -- Rust (latest stable version recommended: 1.75+) - ```bash - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - ``` - Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). - -#### Installation Steps - -1. **Clone and Build the Repository** - - ```bash - git clone git@github.com:graphops/subgraph-mcp.git - cd subgraph-mcp - cargo build --release - ``` - -2. **Find the Command Path** - - After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - - Run `pwd` to get the full path - - Combine the output with `/target/release/subgraph-mcp` - -3. **Configure Claude Desktop** - - Open your `claude_desktop_config.json` file as described above and add: - - ```json - { - "mcpServers": { - "subgraph": { - "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", - "env": { - "GATEWAY_API_KEY": "your-api-key-here" - } - } - } - } - ``` - - Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. - -## Using The Graph Resource in Claude - -After configuring Claude Desktop: - -1. Restart Claude Desktop -2. Start a new conversation -3. Click on the context menu (top right) -4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context - -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. - -## Troubleshooting - -To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal -- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments -- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees - -## Key Identifier Types - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -``` -Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one -``` diff --git a/website/src/pages/vi/subgraphs/mcp/cline.mdx b/website/src/pages/vi/subgraphs/mcp/cline.mdx deleted file mode 100644 index 156221d9a127..000000000000 --- a/website/src/pages/vi/subgraphs/mcp/cline.mdx +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: Cline ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. - -## Prerequisites - -- [Cline](https://cline.bot/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `cline_mcp_settings.json` file. - -> **MCP Servers** > **Installed** > **Configure MCP Servers** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -## Using The Graph Resource in Cline - -After configuring Cline: - -1. Restart Cline -2. Start a new conversation -3. Enable the Subgraph MCP from the context menu -4. Add "Subgraph Server Instructions" as a resource to your chat context - -## Available Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/vi/subgraphs/mcp/cursor.mdx b/website/src/pages/vi/subgraphs/mcp/cursor.mdx deleted file mode 100644 index 298f43ece048..000000000000 --- a/website/src/pages/vi/subgraphs/mcp/cursor.mdx +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Cursor ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. - -## Prerequisites - -- [Cursor](https://www.cursor.com/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `~/.cursor/mcp.json` file. - -> **Cursor Settings** > **MCP** > **Add new global MCP Server** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -### 4. Restart Cursor - -Restart Cursor, and start a new chat. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/vi/substreams/_meta.js b/website/src/pages/vi/substreams/_meta.js index a8ee04618eae..658bb8c213c6 100644 --- a/website/src/pages/vi/substreams/_meta.js +++ b/website/src/pages/vi/substreams/_meta.js @@ -5,5 +5,4 @@ export default { introduction: '', developing: titles.developing ?? '', publishing: '', - sps: titles.sps ?? '', } diff --git a/website/src/pages/vi/token-api/_meta-titles.json b/website/src/pages/vi/token-api/_meta-titles.json index 7ed31e0af95d..3108ecd3ebfd 100644 --- a/website/src/pages/vi/token-api/_meta-titles.json +++ b/website/src/pages/vi/token-api/_meta-titles.json @@ -1,6 +1,7 @@ { "mcp": "MCP", "evm": "EVM Endpoints", + "svm": "SVM Endpoints", "monitoring": "Monitoring Endpoints", "faq": "FAQ" } diff --git a/website/src/pages/vi/token-api/_meta.js b/website/src/pages/vi/token-api/_meta.js index f67576d7f612..fb7f7334ea0c 100644 --- a/website/src/pages/vi/token-api/_meta.js +++ b/website/src/pages/vi/token-api/_meta.js @@ -2,8 +2,8 @@ import titles from './_meta-titles.json' export default { 'quick-start': '', - mcp: titles.mcp ?? '', evm: titles.evm ?? '', + svm: titles.svm ?? '', monitoring: titles.monitoring ?? '', faq: '', } diff --git a/website/src/pages/vi/token-api/mcp/_meta.js b/website/src/pages/vi/token-api/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/vi/token-api/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/vi/token-api/svm/_meta.js b/website/src/pages/vi/token-api/svm/_meta.js new file mode 100644 index 000000000000..1a48b82fcbf1 --- /dev/null +++ b/website/src/pages/vi/token-api/svm/_meta.js @@ -0,0 +1,5 @@ +export default { + 'get-balances-svm': '', + 'get-transfers-svm': '', + 'get-swaps-svm': '', +} diff --git a/website/src/pages/vi/token-api/svm/get-balances-svm.mdx b/website/src/pages/vi/token-api/svm/get-balances-svm.mdx new file mode 100644 index 000000000000..c2946c190bf9 --- /dev/null +++ b/website/src/pages/vi/token-api/svm/get-balances-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Balances +template: + type: openApi + apiId: tokenApi + operationId: getBalancesSvm +--- + +Provides Solana tokens balances by token account address. diff --git a/website/src/pages/vi/token-api/svm/get-swaps-svm.mdx b/website/src/pages/vi/token-api/svm/get-swaps-svm.mdx new file mode 100644 index 000000000000..95282a38ac9f --- /dev/null +++ b/website/src/pages/vi/token-api/svm/get-swaps-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsSvm +--- + +Provides Raydium swap events. diff --git a/website/src/pages/vi/token-api/svm/get-transfers-svm.mdx b/website/src/pages/vi/token-api/svm/get-transfers-svm.mdx new file mode 100644 index 000000000000..5335cdddf418 --- /dev/null +++ b/website/src/pages/vi/token-api/svm/get-transfers-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersSvm +--- + +Provides SVM transfer events. diff --git a/website/src/pages/zh/ai-suite/_meta-titles.json b/website/src/pages/zh/ai-suite/_meta-titles.json new file mode 100644 index 000000000000..5eb482a7092b --- /dev/null +++ b/website/src/pages/zh/ai-suite/_meta-titles.json @@ -0,0 +1,6 @@ +{ + "graph-assistant": "Graph Assistant", + "ai-introduction": "The Graph's AI", + "subgraph-mcp": "Subgraph MCP", + "token-api-mcp": "Token API MCP" +} diff --git a/website/src/pages/zh/ai-suite/_meta.js b/website/src/pages/zh/ai-suite/_meta.js new file mode 100644 index 000000000000..c9e51dfd35fb --- /dev/null +++ b/website/src/pages/zh/ai-suite/_meta.js @@ -0,0 +1,8 @@ +import titles from './_meta-titles.json' + +export default { + 'ai-introduction': titles['ai-introduction'], + 'graph-assistant': titles['graph-assistant'], + 'subgraph-mcp': titles['subgraph-mcp'], + 'token-api-mcp': titles['token-api-mcp'], +} diff --git a/website/src/pages/zh/ai-suite/ai-introduction.mdx b/website/src/pages/zh/ai-suite/ai-introduction.mdx new file mode 100644 index 000000000000..d25cc9f77358 --- /dev/null +++ b/website/src/pages/zh/ai-suite/ai-introduction.mdx @@ -0,0 +1,58 @@ +--- +title: The Graph's AI +--- + +Build with speed and scale faster with The Graph's AI. + +## Using AI on The Graph + +Instead of relying on static datasets or centralized APIs, you can now access live blockchain data through our **agentic** app, [Graph Assistant](/ai-suite/graph-assistant/introduction/), and use our AI-native tooling, [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/), and [Token API MCP](/ai-suite/token-api-mcp/introduction/). + +### Why Use Onchain Data with AI? + +Using onchain data with AI unlocks powerful new ways to interact with and understand blockchain ecosystems. + +- **AI for Non-Technical End Users**: AI can turn complex onchain data into accessible insights. Assistants powered by AI enable you to explore and analyze blockchain data without coding. +- **AI for Developers**: You can use AI to interact directly with The Graph's data through your agents or build AI-powered applications on top of it. This streamlines development and opens up more intuitive, dynamic use cases. + +## AI for Non-Technical/End Users + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) is a powerful **agentic** application that empowers users to easily interact with blockchain data. Ask questions in simple, natural language and get rich, AI powered insights. Both technical developers and non-technical product teams can move faster, make smarter decisions, and gain a clearer understanding than ever before. + +### Benefits of Using Graph Assistant + +- **Natural language Input**: You don't need to write complex queries or sift through dashboards. Simply ask your question in plain English and get clear, structured results. +- **Multi-source support**: Works across multiple Subgraphs and Token API. The Assistant automatically determines which data source to use, so you don't have to switch tools or manage endpoints. +- **Schema-free access**: You don't need to understand the schema. You can refer to tokens, protocols, dates, or addresses using natural language. The Assistant takes care of the rest. + +### Conversational Querying with Graph Assistant + +**Example queries:** + +- "List the top-5 swaps by USD value in the last 24 hours." +- "Give me the daily volume on Uniswap." +- "List the 20 most recently registered .eth names." + +[Graph Assistant](/ai-suite/graph-assistant/introduction/) will eventually be a one-stop shop for interacting with The Graph. Right now, it's an agentic AI app that uses state-of-the-art AI techniques, LLMs, and MCPs to understand and answer your questions about [Subgraphs](/subgraphs/developing/subgraphs/) and [Token API](/token-api/quick-start/) data. + +## AI for Developers + +### Enable Natural Language Access to Onchain Data + +[Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) servers connect to Claude, Cline, and Cursor. They enable models to understand, query, and interact with structured onchain data using natural language. MCPs remove the need to write low-level queries or interact with APIs directly. + +### Subgraph MCP + +The [Subgraph MCP](/ai-suite/subgraph-mcp/introduction/) server connects models to Subgraphs on The Graph Network. It allows language models to explore Subgraph schemas, execute GraphQL queries, find relevant Subgraphs by keyword or contract, and surface usage metrics using natural language. + +### Token API MCP + +The [Token API MCP](/ai-suite/token-api-mcp/introduction/) MCP server enables models to access onchain token data. It supports querying token metadata, wallet balances, transfer history, and top token holders through simple prompts. + +#### Benefits of Using Subgraph and Token API MCPs + +- Query Subgraphs and token data using natural language +- Access GraphQL schemas and token metadata without manual queries +- Find Subgraphs by keyword or contract and check 30-day usage +- Retrieve real-time data from The Graph and onchain token sources +- Get wallet balances, transfer history, and top token holders diff --git a/website/src/pages/zh/ai-suite/graph-assistant/_meta.js b/website/src/pages/zh/ai-suite/graph-assistant/_meta.js new file mode 100644 index 000000000000..74da5e0686a7 --- /dev/null +++ b/website/src/pages/zh/ai-suite/graph-assistant/_meta.js @@ -0,0 +1,6 @@ +export default { + 'quick-start': '', + introduction: '', + 'how-to-guide': '', + faq: '', +} diff --git a/website/src/pages/zh/ai-suite/graph-assistant/faq.mdx b/website/src/pages/zh/ai-suite/graph-assistant/faq.mdx new file mode 100644 index 000000000000..8addf9935524 --- /dev/null +++ b/website/src/pages/zh/ai-suite/graph-assistant/faq.mdx @@ -0,0 +1,26 @@ +--- +title: Graph Assistant FAQ +sidebarTitle: 'FAQ' +--- + +This page summarizes some of the most common questions for developers using Graph Assistant. + +1. What is The Graph Assistant? + +The Graph Assistant is an AI-powered chat interface that lets you query blockchain data in plain English. Under the hood, it translates your questions into GraphQL calls against Subgraphs and the Token API, then returns results, no coding required. + +2. What is an agentic application? + +An agentic application combines AI-driven reasoning with external data sources or APIs to take autonomous actions on your behalf. In this case, Graph Assistant acts as an “agent” that interprets your natural-language prompts, builds and dispatches GraphQL queries, and formats the results so that you don't need to write or manage queries yourself. + +3. Which networks and data does Graph Assistant support? + +The Assistant has access to Subgraphs across multiple chains. If a Subgraph is published to The Graph Network and is being indexed, the Assistant can automatically route queries to it. The Assistant also has access to the Token API on Ethereum Mainnet, BSC, Unichain, Arbitrum-One, Optimism, and Polygon. + +4. Is there a usage limit or quota? + +Yes, 10 questions per hour. + +5. What if the Assistant can't interpret my question? + +When the Assistant fails to parse your intent (for example, ambiguous token name, missing context, or an unsupported request), it will prompt you for clarification. For instance, it might ask, “Did you mean XYZ on Ethereum or XYZ on Arbitrum?” or “Please specify a date range for this query.” If you continue to see parsing errors, check that you're using correct token symbols or specifying networks and time frames clearly. diff --git a/website/src/pages/zh/ai-suite/graph-assistant/how-to-guide.mdx b/website/src/pages/zh/ai-suite/graph-assistant/how-to-guide.mdx new file mode 100644 index 000000000000..463130894ad8 --- /dev/null +++ b/website/src/pages/zh/ai-suite/graph-assistant/how-to-guide.mdx @@ -0,0 +1,56 @@ +--- +title: How To Use The Graph Assistant +sidebarTitle: 'How-to Guide' +--- + +## Overview + +You type a natural language question into the chat interface, such as: + +```yaml +'On Uniswap, return the top-10 pools by total value locked in USD.' +``` + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the underlying agents. Do not share sensitive, personal, or private information. + +### Behind the Scenes + +The Assistant: + +1. Interprets your intent +2. Maps it to the correct Subgraphs or Token API endpoint +3. Executes optimized queries +4. Returns clean, structured results + +You don't need to write queries or understand a Subgraph's schema, you simply ask. + +### Example Use Cases + +**Protocol Analytics** + +- “Compare daily active users on Aave vs. Compound in May 2025.” +- “Show me the total value locked (TVL) for XYZDAO over the last quarter.” + +**Token Insights** + +- “What are the top 10 tokens by market cap on Ethereum right now?” +- “How many XYZ did I receive between May 1 and May 15?” + +**Historical Data Retrieval** + +- “Fetch the token price history of XYZ for the last six months.” +- “What was the average gas price on Ethereum during April?” + +**Portfolio Monitoring** + +- “List my wallet’s current token balances and their USD equivalents.” +- “Calculate profit/loss on XYZ since xyz date.” + +**Cross-Chain Comparison** + +- “Show me the 7-day trading volume of XYZ on Ethereum vs. Polygon.” +- “How many XYZ swaps occurred on Arbitrum yesterday?” + +To get started follow the [quickstart](/ai-suite/graph-assistant/quick-start/) and explore its capabilities. diff --git a/website/src/pages/zh/ai-suite/graph-assistant/introduction.mdx b/website/src/pages/zh/ai-suite/graph-assistant/introduction.mdx new file mode 100644 index 000000000000..65fdf0f96028 --- /dev/null +++ b/website/src/pages/zh/ai-suite/graph-assistant/introduction.mdx @@ -0,0 +1,31 @@ +--- +title: Introduction +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +[Graph Assistant](https://thegraph.com/graph-assistant) (Beta) gives instant, code-free access to blockchain data, transforming natural language into precise, AI-powered queries without the need to code. + +## Overview + +[Graph Assistant](https://thegraph.com/graph-assistant) is an advanced, [agentic](/en/ai-suite/graph-assistant/faq/) easy-to-use chat interface for querying blockchain data using natural language. Unlike a basic chatbot, Graph Assistant can understand your intent, build complex queries, and execute them automatically. This gives you rich, AI-powered insights from onchain data without writing any code. + +- **Automatically** interprets user intent, generates precise queries, executes them via The Graph's Subgraphs and Token API, and presents structured, AI-powered answers without requiring any code. +- **Removes** the technical complexity found in traditional dashboards or chatbots. It provides composable insights directly from indexed Subgraphs and Token datasets. + +## Core Features + +| Feature | Description | +| --- | --- | +| **Friendly Interface** | Conversational access to blockchain data via natural language. You simply ask questions, the Assistant fetches the answer, and renders results. | +| **Backed by Subgraphs** | Uses subgraphs to index protocol-specific data like transactions, events, and protocol metrics. | +| **Backed by Token API** | Uses Token API for token-level information like balances, transfers, and metadata. | +| **No Setup Required** | No need to configure data sources or write queries. | +| **Automatic Query Building** | The Assistant performs complex queries such as fetching historical token volumes, protocol analytics, or cross-chain data and handles filtering, pagination, and joins across Subgraphs automatically. | + +## Help Shape What's Next + +This is in **beta**, and community input is essential. If you have ideas, questions, or run into anything unexpected, we'd love to hear from you: + +- Join the community on [Discord](https://discord.com/invite/graphprotocol): Provide feedback and stay in the loop with other builders. You'll be able to join the `#graph-assistant` channel to share your experience directly. +- Interested in going deeper? Reach out to become a dedicated beta tester so your specific use case can be better supported. diff --git a/website/src/pages/zh/ai-suite/graph-assistant/quick-start.mdx b/website/src/pages/zh/ai-suite/graph-assistant/quick-start.mdx new file mode 100644 index 000000000000..13f8478b8d2b --- /dev/null +++ b/website/src/pages/zh/ai-suite/graph-assistant/quick-start.mdx @@ -0,0 +1,44 @@ +--- +title: Quick Start +--- + +> [!IMPORTANT] Graph Assistant is still in **beta**. Expect breaking changes, rate limits, and potential downtime. + +This guide provides step-by-step instructions for getting started with Graph Assistant quickly. + +## Step-by Step + +### Step 1. Create an Account + +Go to: [Graph Assistant](https://thegraph.com/graph-assistant) + +- Click Sign Up (or Log In if you already have an account). +- Use your Google, GitHub, X, email or wallet credentials to log in. +- No additional setup is required. + +### Step 2. Open the Assistant Chat + +After logging in: + +- You'll see Graph Assistant's interface. +- At the bottom of the page, you will find a chat input bar. This is where you will interact with the Assistant. + +### Step 3: Ask Your First Question + +> [!IMPORTANT] All users can process 10 free queries per user per hour. + +In the input bar, type a natural-language query (everyday language). + +Example: + +```yaml +Show me the 24-hour trading volume of XYZ token on Ethereum +``` + +> [!NOTE] Disclaimer: By using Graph Assistant, you acknowledge that your requests may be logged and used to improve the performance of the AI interface. Do not share sensitive, personal, or private information. + +The Assistant will: + +- Digest your question +- Fetch onchain data using Subgraphs or the Token API +- Return a clean, formatted response with the data you need diff --git a/website/src/pages/zh/ai-suite/subgraph-mcp/_meta.js b/website/src/pages/zh/ai-suite/subgraph-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/zh/ai-suite/subgraph-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/zh/ai-suite/subgraph-mcp/claude.mdx b/website/src/pages/zh/ai-suite/subgraph-mcp/claude.mdx new file mode 100644 index 000000000000..ff3caa4e3e7f --- /dev/null +++ b/website/src/pages/zh/ai-suite/subgraph-mcp/claude.mdx @@ -0,0 +1,169 @@ +--- +title: Claude Desktop +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data via natural language conversations with Claude. + +## Prerequisites + +- [Node.js](https://nodejs.org/en) installed and available in your path +- [Claude Desktop](https://claude.ai/download) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) + +## Installation Options + +### Option 1: Using npx (Recommended) + +#### Configuration Steps using npx + +#### 1. Open Configuration File + +Navigate to your `claude_desktop_config.json` file: + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +#### 2. Add Configuration + +Paste the following settings into your config file: + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +#### 3. Add Your Gateway API Key + +Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). + +#### 4. Save and Restart + +Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. + +### Option 2: Building from Source + +#### Requirements + +- Rust (latest stable version recommended: 1.75+) + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). + +#### Installation Steps + +1. **Clone and Build the Repository** + + ```bash + git clone git@github.com:graphops/subgraph-mcp.git + cd subgraph-mcp + cargo build --release + ``` + +2. **Find the Command Path** + + After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. + - Navigate to your `subgraph-mcp` directory in terminal + - Run `pwd` to get the full path + - Combine the output with `/target/release/subgraph-mcp` + +3. **Configure Claude Desktop** + + Open your `claude_desktop_config.json` file as described above and add: + + ```json + { + "mcpServers": { + "subgraph": { + "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", + "env": { + "GATEWAY_API_KEY": "your-api-key-here" + } + } + } + } + ``` + + Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. + +## Using The Graph Resource in Claude + +After configuring Claude Desktop: + +1. Restart Claude Desktop +2. Start a new conversation +3. Click on the context menu (top right) +4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context + +> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. + +## Troubleshooting + +To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal +- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments +- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees + +## Key Identifier Types + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +``` +Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one +``` diff --git a/website/src/pages/zh/ai-suite/subgraph-mcp/cline.mdx b/website/src/pages/zh/ai-suite/subgraph-mcp/cline.mdx new file mode 100644 index 000000000000..eb8044bfe991 --- /dev/null +++ b/website/src/pages/zh/ai-suite/subgraph-mcp/cline.mdx @@ -0,0 +1,99 @@ +--- +title: Cline +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cline](https://cline.bot/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +## Using The Graph Resource in Cline + +After configuring Cline: + +1. Restart Cline +2. Start a new conversation +3. Enable the Subgraph MCP from the context menu +4. Add "Subgraph Server Instructions" as a resource to your chat context + +## Available Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/zh/ai-suite/subgraph-mcp/cursor.mdx b/website/src/pages/zh/ai-suite/subgraph-mcp/cursor.mdx new file mode 100644 index 000000000000..6291caf4b06b --- /dev/null +++ b/website/src/pages/zh/ai-suite/subgraph-mcp/cursor.mdx @@ -0,0 +1,94 @@ +--- +title: Cursor +--- + +This guide walks you through the integration of Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) to access Subgraph data through natural language conversations with Cline. + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed (latest version) +- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path + +## Configuration Steps + +### 1. Open Configuration File + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +### 2. Add Configuration + +```json +{ + "mcpServers": { + "subgraph": { + "command": "npx", + "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], + "env": { + "AUTH_HEADER": "Bearer GATEWAY_API_KEY" + } + } + } +} +``` + +### 3. Add Your API Key + +Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. + +### 4. Restart Cursor + +Restart Cursor, and start a new chat. + +## Available Subgraph Tools and Usage + +The Subgraph MCP provides several tools for interacting with Subgraphs: + +### Schema Retrieval Tools + +- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) +- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) +- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) + +### Query Execution Tools + +- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments +- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph + +### Discovery Tools + +- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain + +## Benefits of Natural Language Queries + +One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: + +1. Understand your goal (lookup, find Subgraphs, query, get schema) +2. Find relevant deployments if needed +3. Fetch and interpret the Subgraph schema +4. Convert your question into an appropriate GraphQL query +5. Execute the query and present the results in a readable format + +### Example Natural Language Queries + +``` +What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? +``` + +``` +Which tokens have the highest market cap in this Subgraph? +``` + +``` +Show me the most recent 5 swaps for the USDC/ETH pair +``` + +## Key Identifier Types + +When working with Subgraphs, you'll encounter different types of identifiers: + +- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph +- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment +- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/zh/ai-suite/subgraph-mcp/introduction.mdx b/website/src/pages/zh/ai-suite/subgraph-mcp/introduction.mdx new file mode 100644 index 000000000000..da1272cf9a36 --- /dev/null +++ b/website/src/pages/zh/ai-suite/subgraph-mcp/introduction.mdx @@ -0,0 +1,22 @@ +--- +title: Subgraph MCP Introduction +sidebarTitle: 'Introduction' +--- + +Subgraph MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +It presents The Graph's Subgraph data through a set of MCP tools that any MCP-compatible client can call. With these tools, clients can search for relevant Subgraphs, inspect GraphQL schemas, and run queries against specific deployments on The Graph Network all within a single, standardized interface. + +The server itself does not hold a language model. Instead, it translates incoming MCP requests into Subgraph queries and returns the structured results, allowing the client's LLM to transform a natural-language prompt into actionable blockchain data. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Subgraph ecosystem. + +## What You Can Do + +- Access GraphQL schemas for any Subgraph on The Graph Network +- Run GraphQL queries on any Subgraph deployment +- Discover top Subgraph deployments by keyword or contract address +- Retrieve 30-day query volumes for Subgraph deployments +- Ask questions about Subgraph data without writing GraphQL manually + +The Subgraph MCP server allows smooth integration with [Claude](/ai-suite/subgraph-mcp/claude/), [Cline](/ai-suite/subgraph-mcp/cline/), or [Cursor](/ai-suite/subgraph-mcp/cursor/), making blockchain data queries with The Graph Network a conversational experience. diff --git a/website/src/pages/zh/ai-suite/token-api-mcp/_meta.js b/website/src/pages/zh/ai-suite/token-api-mcp/_meta.js new file mode 100644 index 000000000000..6f527b4e53e4 --- /dev/null +++ b/website/src/pages/zh/ai-suite/token-api-mcp/_meta.js @@ -0,0 +1,6 @@ +export default { + introduction: '', + claude: '', + cline: '', + cursor: '', +} diff --git a/website/src/pages/zh/ai-suite/token-api-mcp/claude.mdx b/website/src/pages/zh/ai-suite/token-api-mcp/claude.mdx new file mode 100644 index 000000000000..3e21f4d7e165 --- /dev/null +++ b/website/src/pages/zh/ai-suite/token-api-mcp/claude.mdx @@ -0,0 +1,58 @@ +--- +title: Using Claude Desktop to Access the Token API via MCP +sidebarTitle: Claude Desktop +--- + +## Prerequisites + +- [Claude Desktop](https://claude.ai/download) installed. +- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. +- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. + +![Screenshot of Claude Desktop's settings panel showing the MCP server configuration option.](/img/claude-preview-token-api.png) + +## Configuration + +Create or edit your `claude_desktop_config.json` file. + +> **Settings** > **Developer** > **Edit Config** + +- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` +- Windows: `%APPDATA%\Claude\claude_desktop_config.json` +- Linux: `.config/Claude/claude_desktop_config.json` + +```json label="claude_desktop_config.json" +{ + "mcpServers": { + "token-api": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "" + } + } + } +} +``` + +## Troubleshooting + +To enable logs for the MCP, use the `--verbose true` option. + +### ENOENT + +![Error dialog in Claude Desktop showing 'ENOENT' system error, indicating the npx/bunx command wasn't found in the system path.](/img/claude-ENOENT.png) + +Try to use the full path of the command instead: + +- Run `which npx` or `which bunx` to get the path of the command. +- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). + +### Server disconnected + +![Connection error notification in Claude Desktop displaying 'Server disconnected' message.](/img/claude-server-disconnect.png) + +Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. + +> You can always have a look at the full logs under `Claude/logs/mcp.log` and `Claude/logs/mcp-server-pinax.log` for more details. diff --git a/website/src/pages/zh/ai-suite/token-api-mcp/cline.mdx b/website/src/pages/zh/ai-suite/token-api-mcp/cline.mdx new file mode 100644 index 000000000000..e885d21366cd --- /dev/null +++ b/website/src/pages/zh/ai-suite/token-api-mcp/cline.mdx @@ -0,0 +1,52 @@ +--- +title: Using Cline to Access the Token API via MCP +sidebarTitle: Cline +--- + +## Prerequisites + +- [Cline](https://cline.bot/) installed. +- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. +- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. + +![Screenshot of Cline's MCP server configuration interface displaying the JSON settings file with mcp-pinax server details visible.](/img/cline-preview-token-api.png) + +## Configuration + +Create or edit your `cline_mcp_settings.json` file. + +> **MCP Servers** > **Installed** > **Configure MCP Servers** + +```json label="cline_mcp_settings.json" +{ + "mcpServers": { + "mcp-pinax": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "" + } + } + } +} +``` + +## Troubleshooting + +To enable logs for the MCP, use the `--verbose true` option. + +### ENOENT + +![Cline error dialog showing 'ENOENT' system alert.](/img/cline-error.png) + +Try to use the full path of the command instead: + +- Run `which npx` or `which bunx` to get the path of the command. +- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). + +### Server disconnected + +![Cline connection error notification displaying server disconnection warning.](/img/cline-missing-variables.png) + +Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/zh/ai-suite/token-api-mcp/cursor.mdx b/website/src/pages/zh/ai-suite/token-api-mcp/cursor.mdx new file mode 100644 index 000000000000..68fe2fdb201c --- /dev/null +++ b/website/src/pages/zh/ai-suite/token-api-mcp/cursor.mdx @@ -0,0 +1,50 @@ +--- +title: Using Cursor to Access the Token API via MCP +sidebarTitle: Cursor +--- + +## Prerequisites + +- [Cursor](https://www.cursor.com/) installed. +- A [JWT token](/token-api/quick-start) from [The Graph Market](https://thegraph.market/). +- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path. +- The `@pinax/mcp` package requires Node 18+, as it relies on built-in `fetch()` / `Headers`, which are not available in Node 17 or older. You may need to specify an exact path to an up-to-date Node version, or uninstall previous versions of Node to ensure `@pinax/mcp` uses the correct version. + +![Screenshot of Cursor's MCP configuration panel.](/img/cursor-preview-token-api.png) + +## Configuration + +Create or edit your `~/.cursor/mcp.json` file. + +> **Cursor Settings** > **MCP** > **Add new global MCP Server** + +```json label="mcp.json" +{ + "mcpServers": { + "mcp-pinax": { + "command": "npx", + "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], + "env": { + "ACCESS_TOKEN": "" + } + } + } +} +``` + +## Troubleshooting + +![Cursor IDE error notification that reads, "Failed to create client"](/img/cursor-error.png) + +To enable logs for the MCP, use the `--verbose true` option. + +### ENOENT + +Try to use the full path of the command instead: + +- Run `which npx` or `which bunx` to get the path of the command. +- Replace `npx` or `bunx` in the configuration file with the full path (e.g. `/home/user/bin/bunx`). + +### Server disconnected + +Double-check your API key otherwise look in your navigator if `https://token-api.mcp.thegraph.com/sse` is reachable. diff --git a/website/src/pages/zh/ai-suite/token-api-mcp/introduction.mdx b/website/src/pages/zh/ai-suite/token-api-mcp/introduction.mdx new file mode 100644 index 000000000000..b61ad0a1c485 --- /dev/null +++ b/website/src/pages/zh/ai-suite/token-api-mcp/introduction.mdx @@ -0,0 +1,23 @@ +--- +title: Token API MCP Introduction +sidebarTitle: 'Introduction' +--- + +Token API MCP server is an open-source implementation of [Anthropic's Model Context Protocol](https://modelcontextprotocol.io/introduction). + +This MCP server makes on-chain token data, including metadata, balances, transfers, and holder statistics, accessible through a set of MCP tools. Any compatible client can use these tools to fetch and analyze token information through a standardized interface. It connects to The Graph's hosted Token API database, enabling AI assistants to query real-time blockchain data using natural language requests that get translated into optimized SQL queries. + +The server itself does not host any language model. It simply converts MCP calls into data look-ups and returns structured results, letting the client's own LLM incorporate the results. + +Think of it as a USB-C hub: it standardizes the plug-and-play connection between AI agents and The Graph's Token API data. + +## What You Can Do + +- Retrieve token metadata including name, symbol, decimals, total supply, and contract address +- Get token balances for any wallet address holding a supported ERC-20 token +- Fetch token transfer activity including sender, receiver, amount, and timestamp +- Identify top holders and analyze token distribution +- Ask natural language questions about token data without writing smart contract calls +- Access historical transfer data to analyze token movement over time + +The Token MCP server provides [Claude](/ai-suite/token-api-mcp/claude/), [Cline](/ai-suite/token-api-mcp/cline/), and [Cursor](/ai-suite/token-api-mcp/cursor/) with direct, conversational access to onchain token data. diff --git a/website/src/pages/zh/resources/_meta.js b/website/src/pages/zh/resources/_meta.js index aa8e2d0ec6a8..38c56cf56c43 100644 --- a/website/src/pages/zh/resources/_meta.js +++ b/website/src/pages/zh/resources/_meta.js @@ -7,5 +7,4 @@ export default { roles: titles.roles ?? '', 'migration-guides': titles['migration-guides'] ?? '', 'subgraph-studio-faq': '', - 'claude-mcp': '', } diff --git a/website/src/pages/zh/resources/claude-mcp.mdx b/website/src/pages/zh/resources/claude-mcp.mdx deleted file mode 100644 index 44ed075cffda..000000000000 --- a/website/src/pages/zh/resources/claude-mcp.mdx +++ /dev/null @@ -1,122 +0,0 @@ ---- -title: Claude MCP ---- - -This guide walks you through configuring Claude Desktop to use The Graph ecosystem's [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) resources: Token API and Subgraph. These integrations allow you to interact with blockchain data through natural language conversations with Claude. - -## What You Can Do - -With these integrations, you can: - -- **Token API**: Access token and wallet information across multiple blockchains -- **Subgraph**: Find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries - -## Prerequisites - -- [Node.js](https://nodejs.org/en/download/) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed -- API keys: - - Token API key from [The Graph Market](https://thegraph.market/) - - Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -## Configuration Steps - -### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Claude Desktop** > **Settings** > **Developer** > **Edit Config** - -Paths by operating system: - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -### 2. Add Configuration - -Replace the contents of the existing config file with: - -```json -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "ACCESS_TOKEN" - } - }, - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Keys - -Replace: - -- `ACCESS_TOKEN` with your Token API key from [The Graph Market](https://thegraph.market/) -- `GATEWAY_API_KEY` with your Gateway API key from [Subgraph Studio](https://thegraph.com/studio/apikeys/) - -### 4. Save and Restart - -- Save the configuration file -- Restart Claude Desktop - -### 5. Add The Graph Resources in Claude - -After configuration: - -1. Start a new conversation in Claude Desktop -2. Click on the context menu (top right) -3. Add "Subgraph Server Instructions" as a resource by entering `graphql://subgraph` for Subgraph MCP - -> **Important**: You must manually add The Graph resources to your chat context for each conversation where you want to use them. - -### 6. Run Queries - -Here are some example queries you can try after setting up the resources: - -### Subgraph Queries - -``` -What are the top pools in Uniswap? -``` - -``` -Who are the top Delegators of The Graph Protocol? -``` - -``` -Please make a bar chart for the number of active loans in Compound for the last 7 days -``` - -### Token API Queries - -``` -Show me the current price of ETH -``` - -``` -What are the top tokens by market cap on Ethereum? -``` - -``` -Analyze this wallet address: 0x... -``` - -## Troubleshooting - -If you encounter issues: - -1. **Verify Node.js Installation**: Ensure Node.js is correctly installed by running `node -v` in your terminal -2. **Check API Keys**: Verify that your API keys are correctly entered in the configuration file -3. **Enable Verbose Logging**: Add `--verbose true` to the args array in your configuration to see detailed logs -4. **Restart Claude Desktop**: After making changes to the configuration, always restart Claude Desktop diff --git a/website/src/pages/zh/subgraphs/_meta.js b/website/src/pages/zh/subgraphs/_meta.js index 4365293ffc72..45841d5f3355 100644 --- a/website/src/pages/zh/subgraphs/_meta.js +++ b/website/src/pages/zh/subgraphs/_meta.js @@ -6,7 +6,6 @@ export default { querying: titles.querying ?? '', developing: titles.developing ?? '', billing: '', - mcp: titles.mcp ?? '', guides: titles.guides, 'best-practices': titles['best-practices'], 'fair-use-policy': '', diff --git a/website/src/pages/zh/subgraphs/mcp/_meta.js b/website/src/pages/zh/subgraphs/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/zh/subgraphs/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/zh/subgraphs/mcp/claude.mdx b/website/src/pages/zh/subgraphs/mcp/claude.mdx deleted file mode 100644 index 027b272cb942..000000000000 --- a/website/src/pages/zh/subgraphs/mcp/claude.mdx +++ /dev/null @@ -1,179 +0,0 @@ ---- -title: Claude Desktop ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Claude to interact directly with Subgraphs on The Graph Network. This integration allows you to find relevant Subgraphs for specific keywords and contracts, explore Subgraph schemas, and execute GraphQL queries—all through natural language conversations with Claude. - -## What You Can Do - -The Subgraph MCP integration enables you to: - -- Access the GraphQL schema for any Subgraph on The Graph Network -- Execute GraphQL queries against any Subgraph deployment -- Find top Subgraph deployments for a given keyword or contract address -- Get 30-day query volume for Subgraph deployments -- Ask natural language questions about Subgraph data without writing GraphQL queries manually - -## Prerequisites - -- [Node.js](https://nodejs.org/en) installed and available in your path -- [Claude Desktop](https://claude.ai/download) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) - -## Installation Options - -### Option 1: Using npx (Recommended) - -#### Configuration Steps using npx - -#### 1. Open Configuration File - -Navigate to your `claude_desktop_config.json` file: - -> **Settings** > **Developer** > **Edit Config** - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -#### 2. Add Configuration - -Paste the following settings into your config file: - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -#### 3. Add Your Gateway API Key - -Replace `GATEWAY_API_KEY` with your API key from [Subgraph Studio](https://thegraph.com/studio/). - -#### 4. Save and Restart - -Once you've entered your Gateway API key into your settings, save the file and restart Claude Desktop. - -### Option 2: Building from Source - -#### Requirements - -- Rust (latest stable version recommended: 1.75+) - ```bash - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - ``` - Follow the on-screen instructions. For other platforms, see the [official Rust installation guide](https://www.rust-lang.org/tools/install). - -#### Installation Steps - -1. **Clone and Build the Repository** - - ```bash - git clone git@github.com:graphops/subgraph-mcp.git - cd subgraph-mcp - cargo build --release - ``` - -2. **Find the Command Path** - - After building, the executable will be located at `target/release/subgraph-mcp` inside your project directory. - - Navigate to your `subgraph-mcp` directory in terminal - - Run `pwd` to get the full path - - Combine the output with `/target/release/subgraph-mcp` - -3. **Configure Claude Desktop** - - Open your `claude_desktop_config.json` file as described above and add: - - ```json - { - "mcpServers": { - "subgraph": { - "command": "/path/to/your/subgraph-mcp/target/release/subgraph-mcp", - "env": { - "GATEWAY_API_KEY": "your-api-key-here" - } - } - } - } - ``` - - Replace `/path/to/your/subgraph-mcp/target/release/subgraph-mcp` with the actual path to the compiled binary. - -## Using The Graph Resource in Claude - -After configuring Claude Desktop: - -1. Restart Claude Desktop -2. Start a new conversation -3. Click on the context menu (top right) -4. Add "Subgraph Server Instructions" as a resource by adding `graphql://subgraph` to your chat context - -> **Important**: Claude Desktop may not automatically utilize the Subgraph MCP. You must manually add "Subgraph Server Instructions" resource to your chat context for each conversation where you want to use it. - -## Troubleshooting - -To enable logs for the MCP when using the npx option, add the `--verbose true` option to your args array. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID/IPFS hash**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Search subgraphs by keyword**: Find subgraphs by keyword in their display names, ordered by signal -- **Get deployment 30-day query counts**: Get aggregate query count over the last 30 days for multiple subgraph deployments -- **Get top Subgraph deployments for a contract**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain, ordered by query fees - -## Key Identifier Types - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a subgraph. Use `execute_query_by_subgraph_id` or `get_schema_by_subgraph_id`. -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment. Use `execute_query_by_deployment_id` or `get_schema_by_deployment_id`. -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific, immutable deployment. Use `execute_query_by_deployment_id` (the gateway treats it like a deployment ID for querying) or `get_schema_by_ipfs_hash`. - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Claude will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -``` -Find the top subgraphs for contract 0x1f98431c8ad98523631ae4a59f267346ea31f984 on arbitrum-one -``` diff --git a/website/src/pages/zh/subgraphs/mcp/cline.mdx b/website/src/pages/zh/subgraphs/mcp/cline.mdx deleted file mode 100644 index 156221d9a127..000000000000 --- a/website/src/pages/zh/subgraphs/mcp/cline.mdx +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: Cline ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cline to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cline. - -## Prerequisites - -- [Cline](https://cline.bot/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `cline_mcp_settings.json` file. - -> **MCP Servers** > **Installed** > **Configure MCP Servers** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -## Using The Graph Resource in Cline - -After configuring Cline: - -1. Restart Cline -2. Start a new conversation -3. Enable the Subgraph MCP from the context menu -4. Add "Subgraph Server Instructions" as a resource to your chat context - -## Available Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cline will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/zh/subgraphs/mcp/cursor.mdx b/website/src/pages/zh/subgraphs/mcp/cursor.mdx deleted file mode 100644 index 298f43ece048..000000000000 --- a/website/src/pages/zh/subgraphs/mcp/cursor.mdx +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Cursor ---- - -The Subgraph [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server enables Cursor to interact directly with Subgraphs on The Graph Network. This integration allows you to explore Subgraph schemas, execute GraphQL queries, and find relevant Subgraphs for specific contracts—all through natural language conversations with Cursor. - -## Prerequisites - -- [Cursor](https://www.cursor.com/) installed (latest version) -- A Gateway API key from [Subgraph Studio](https://thegraph.com/studio/) -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) or [`bunx`](https://bun.sh/) installed and available in your path - -## Configuration Steps - -### 1. Open Configuration File - -Create or edit your `~/.cursor/mcp.json` file. - -> **Cursor Settings** > **MCP** > **Add new global MCP Server** - -### 2. Add Configuration - -```json -{ - "mcpServers": { - "subgraph": { - "command": "npx", - "args": ["mcp-remote", "--header", "Authorization:${AUTH_HEADER}", "https://subgraphs.mcp.thegraph.com/sse"], - "env": { - "AUTH_HEADER": "Bearer GATEWAY_API_KEY" - } - } - } -} -``` - -### 3. Add Your API Key - -Replace `GATEWAY_API_KEY` with your API key from Subgraph Studio. - -### 4. Restart Cursor - -Restart Cursor, and start a new chat. - -## Available Subgraph Tools and Usage - -The Subgraph MCP provides several tools for interacting with Subgraphs: - -### Schema Retrieval Tools - -- **Get schema by deployment ID**: Access the GraphQL schema using a deployment ID (0x...) -- **Get schema by Subgraph ID**: Access the schema for the current deployment of a Subgraph (5zvR82...) -- **Get schema by IPFS hash**: Access the schema using a Subgraph's IPFS manifest hash (Qm...) - -### Query Execution Tools - -- **Execute query by deployment ID**: Run GraphQL queries against specific, immutable deployments -- **Execute query by Subgraph ID**: Run GraphQL queries against the latest version of a Subgraph - -### Discovery Tools - -- **Get top Subgraph deployments**: Find the top 3 Subgraph deployments indexing a specific contract on a particular chain - -## Benefits of Natural Language Queries - -One of the most powerful features of the Subgraph MCP integration is the ability to ask questions in natural language. Cursor will: - -1. Understand your goal (lookup, find Subgraphs, query, get schema) -2. Find relevant deployments if needed -3. Fetch and interpret the Subgraph schema -4. Convert your question into an appropriate GraphQL query -5. Execute the query and present the results in a readable format - -### Example Natural Language Queries - -``` -What are the pairs with maximum volume on deployment 0xde0a7b5368f846f7d863d9f64949b688ad9818243151d488b4c6b206145b9ea3? -``` - -``` -Which tokens have the highest market cap in this Subgraph? -``` - -``` -Show me the most recent 5 swaps for the USDC/ETH pair -``` - -## Key Identifier Types - -When working with Subgraphs, you'll encounter different types of identifiers: - -- **Subgraph ID** (e.g., `5zvR82...`): Logical identifier for a Subgraph -- **Deployment ID** (e.g., `0x4d7c...`): Identifier for a specific, immutable deployment -- **IPFS Hash** (e.g., `QmTZ8e...`): Identifier for the manifest of a specific deployment diff --git a/website/src/pages/zh/substreams/_meta.js b/website/src/pages/zh/substreams/_meta.js index a8ee04618eae..658bb8c213c6 100644 --- a/website/src/pages/zh/substreams/_meta.js +++ b/website/src/pages/zh/substreams/_meta.js @@ -5,5 +5,4 @@ export default { introduction: '', developing: titles.developing ?? '', publishing: '', - sps: titles.sps ?? '', } diff --git a/website/src/pages/zh/token-api/_meta-titles.json b/website/src/pages/zh/token-api/_meta-titles.json index b14132282d69..5a0cde8be5a5 100644 --- a/website/src/pages/zh/token-api/_meta-titles.json +++ b/website/src/pages/zh/token-api/_meta-titles.json @@ -1,6 +1,7 @@ { "mcp": "MCP", "evm": "EVM端点", + "svm": "SVM Endpoints", "monitoring": "监控端点", "faq": "常见问题" } diff --git a/website/src/pages/zh/token-api/_meta.js b/website/src/pages/zh/token-api/_meta.js index f67576d7f612..fb7f7334ea0c 100644 --- a/website/src/pages/zh/token-api/_meta.js +++ b/website/src/pages/zh/token-api/_meta.js @@ -2,8 +2,8 @@ import titles from './_meta-titles.json' export default { 'quick-start': '', - mcp: titles.mcp ?? '', evm: titles.evm ?? '', + svm: titles.svm ?? '', monitoring: titles.monitoring ?? '', faq: '', } diff --git a/website/src/pages/zh/token-api/mcp/_meta.js b/website/src/pages/zh/token-api/mcp/_meta.js deleted file mode 100644 index 8630d4da27b3..000000000000 --- a/website/src/pages/zh/token-api/mcp/_meta.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - claude: '', - cline: '', - cursor: '', -} diff --git a/website/src/pages/zh/token-api/mcp/claude.mdx b/website/src/pages/zh/token-api/mcp/claude.mdx deleted file mode 100644 index 276fb287cbd1..000000000000 --- a/website/src/pages/zh/token-api/mcp/claude.mdx +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: 使用 Claude 桌面通过 MCP 访问 Token API -sidebarTitle: Claude 桌面 ---- - -## 先决条件 - -- [Claude Desktop](https://claude.ai/download) 已安装。 -- 一个来自[The Graph市场]的[JWT 代币](/token-api/quick-start) (https://thegraph.market/)。 -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) 或 [`bunx`](https://bun.sh/) 已安装并在您的路径中可用。 -- `@pinax/mcp`软件包需要 Node 18+,因为它依赖于内置的`fetch()` / `Headers`,这些软件包在Node 17或更高版本中不可用。 您可能需要指定一个到最新节点版本的确切路径, 或卸载以前版本的节点以确保`@pinax/mcp`使用正确版本。 - -![Claude Desktop的设置面板显示MCP服务器配置选项。](/img/claude-preview-token-api.png) - -## 配置 - -创建或编辑您的 `claude_desktop_config.json` 文件。 - -> **设置** > **开发者** > **编辑配置** - -- OSX: `~/Library/Application Support/Claude/claude_desktop_config.json` -- Windows: `%APPDATA%\Claude\claude_desktop_config.json` -- Linux: `.config/Claude/claude_desktop_config.json` - -```json label="claude_desktop_config.json" -{ - "mcpServers": { - "token-api": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -## 故障排除 - -要启用 MCP日志,请使用 `--verbose true` 选项。 - -### ENOENT - -![Claude Desktop中的错误对话框显示“ENOENT”系统错误,表示在系统路径中找不到npx/bunx命令。](/img/claude-ENOENT.png) - -请尝试使用命令的完整路径: - -- 运行`哪个npx` 或 `哪个bunx` 来获取命令的路径。 -- 将配置文件中的`npx`或`bunx`替换为完整路径(例如`/home/user/bin/bunx`)。 - -### 与服务器连接已断开 - -![Claude 桌面中显示“服务器断开连接”消息的连接错误通知。](/img/claude-server-disconnect.png) - -如果`https://token-api.mcp.thegraph.com/sse`,请在导航器中以其他方式检查您的 API 密钥。 - -> 您总是可以查看`Claude/logs/mcp.log`和`Claude/logs/mcp-server-pinax.log`下的完整日志以了解更多详情。 diff --git a/website/src/pages/zh/token-api/mcp/cline.mdx b/website/src/pages/zh/token-api/mcp/cline.mdx deleted file mode 100644 index 9f7edd2a5e5e..000000000000 --- a/website/src/pages/zh/token-api/mcp/cline.mdx +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: 通过 MCP 使用 Cline 访问代币API -sidebarTitle: Cline ---- - -## 先决条件 - -- [Cline](https://cline.bot/) 已安装。 -- 一个来自[The Graph市场]的[JWT 代币](/token-api/quick-start) (https://thegraph.market/)。 -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) 或 [`bunx`](https://bun.sh/) 已安装并在您的路径中可用。 -- `@pinax/mcp`软件包需要 Node 18+,因为它依赖于内置的`fetch()` / `Headers`,这些软件包在Node 17或更高版本中不可用。 您可能需要指定一个到最新节点版本的确切路径, 或卸载以前版本的节点以确保`@pinax/mcp`使用正确版本。 - -![Screenshot of Cline's MCP server configuration interface displaying the JSON settings file with mcp-pinax server details visible.](/img/cline-preview-token-api.png) - -## 配置 - -创建或编辑您的 `claude_desktop_config.json` 文件。 - -> **MCP 服务器** > **安装** > **配置 MCP 服务器** - -```json label="cline_mcp_settings.json" -{ - "mcpServers": { - "mcp-pinax": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -## 故障排除 - -要启用 MCP日志,请使用 `--verbose true` 选项。 - -### ENOENT - -![Cline error dialog showing 'ENOENT' system alert.](/img/cline-error.png) - -请尝试使用命令的完整路径: - -- 运行`哪个npx` 或 `哪个bunx` 来获取命令的路径。 -- 将配置文件中的`npx`或`bunx`替换为完整路径(例如`/home/user/bin/bunx`)。 - -### 与服务器连接已断开 - -![Cline 连接错误通知显示服务器断开连接警告。](/img/cline-missing-variables.png) - -如果`https://token-api.mcp.thegraph.com/sse`,请在导航器中以其他方式检查您的 API 密钥。 diff --git a/website/src/pages/zh/token-api/mcp/cursor.mdx b/website/src/pages/zh/token-api/mcp/cursor.mdx deleted file mode 100644 index 6623607e565c..000000000000 --- a/website/src/pages/zh/token-api/mcp/cursor.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Using Cursor to Access the Token API via MCP -sidebarTitle: Cursor ---- - -## 先决条件 - -- [Cursor](https://www.cursor.com/) installed. -- 一个来自[The Graph市场]的[JWT 代币](/token-api/quick-start) (https://thegraph.market/)。 -- [`npx`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) 或 [`bunx`](https://bun.sh/) 已安装并在您的路径中可用。 -- `@pinax/mcp`软件包需要 Node 18+,因为它依赖于内置的`fetch()` / `Headers`,这些软件包在Node 17或更高版本中不可用。 您可能需要指定一个到最新节点版本的确切路径, 或卸载以前版本的节点以确保`@pinax/mcp`使用正确版本。 - -![Screenshot of Cursor's MCP configuration panel.](/img/cursor-preview-token-api.png) - -## 配置 - -Create or edit your `~/.cursor/mcp.json` file. - -> **Cursor Settings** > **MCP** > **Add new global MCP Server** - -```json label="mcp.json" -{ - "mcpServers": { - "mcp-pinax": { - "command": "npx", - "args": ["@pinax/mcp", "--sse-url", "https://token-api.mcp.thegraph.com/sse"], - "env": { - "ACCESS_TOKEN": "" - } - } - } -} -``` - -## 故障排除 - -![Cursor IDE error notification that reads, "Failed to create client"](/img/cursor-error.png) - -要启用 MCP日志,请使用 `--verbose true` 选项。 - -### ENOENT - -请尝试使用命令的完整路径: - -- 运行`哪个npx` 或 `哪个bunx` 来获取命令的路径。 -- 将配置文件中的`npx`或`bunx`替换为完整路径(例如`/home/user/bin/bunx`)。 - -### 与服务器连接已断开 - -如果`https://token-api.mcp.thegraph.com/sse`,请在导航器中以其他方式检查您的 API 密钥。 diff --git a/website/src/pages/zh/token-api/svm/_meta.js b/website/src/pages/zh/token-api/svm/_meta.js new file mode 100644 index 000000000000..1a48b82fcbf1 --- /dev/null +++ b/website/src/pages/zh/token-api/svm/_meta.js @@ -0,0 +1,5 @@ +export default { + 'get-balances-svm': '', + 'get-transfers-svm': '', + 'get-swaps-svm': '', +} diff --git a/website/src/pages/zh/token-api/svm/get-balances-svm.mdx b/website/src/pages/zh/token-api/svm/get-balances-svm.mdx new file mode 100644 index 000000000000..c2946c190bf9 --- /dev/null +++ b/website/src/pages/zh/token-api/svm/get-balances-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Balances +template: + type: openApi + apiId: tokenApi + operationId: getBalancesSvm +--- + +Provides Solana tokens balances by token account address. diff --git a/website/src/pages/zh/token-api/svm/get-swaps-svm.mdx b/website/src/pages/zh/token-api/svm/get-swaps-svm.mdx new file mode 100644 index 000000000000..95282a38ac9f --- /dev/null +++ b/website/src/pages/zh/token-api/svm/get-swaps-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Swap Events +template: + type: openApi + apiId: tokenApi + operationId: getSwapsSvm +--- + +Provides Raydium swap events. diff --git a/website/src/pages/zh/token-api/svm/get-transfers-svm.mdx b/website/src/pages/zh/token-api/svm/get-transfers-svm.mdx new file mode 100644 index 000000000000..5335cdddf418 --- /dev/null +++ b/website/src/pages/zh/token-api/svm/get-transfers-svm.mdx @@ -0,0 +1,9 @@ +--- +title: Transfers Events +template: + type: openApi + apiId: tokenApi + operationId: getTransfersSvm +--- + +Provides SVM transfer events.