@apteva/integrations 0.3.43 → 0.3.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"http-executor.d.ts","sourceRoot":"","sources":["../src/http-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EAEf,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,WAAW,CAAC;IACjB,IAAI,EAAE,eAAe,CAAC;IACtB,WAAW,EAAE,qBAAqB,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,iBAAiB,CAAC,CA+F5B"}
1
+ {"version":3,"file":"http-executor.d.ts","sourceRoot":"","sources":["../src/http-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EAEf,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,WAAW,CAAC;IACjB,IAAI,EAAE,eAAe,CAAC;IACtB,WAAW,EAAE,qBAAqB,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,iBAAiB,CAAC,CAoH5B"}
@@ -17,12 +17,35 @@ export async function executeTool(opts) {
17
17
  };
18
18
  // 4. Build auth query params (e.g. Pushover's ?token=xxx)
19
19
  const authQueryParams = buildAuthQueryParams(app, credentials);
20
- // 5. For GET/DELETE, remaining params go to query string.
21
- // For POST/PUT/PATCH, remaining params go to body.
20
+ // 5. Split input into path-substituted, query-string, and body buckets.
21
+ // - Path params: already substituted into `url` above; drop from the
22
+ // remaining set so we don't echo them in body or query.
23
+ // - tool.query_params: explicitly declared by the template; always
24
+ // sent as URL query string regardless of HTTP method. Required for
25
+ // APIs that mix query+body on POST/PUT (e.g. Google Sheets'
26
+ // values:append puts valueInputOption in the URL but the
27
+ // ValueRange object in the body).
28
+ // - GET/DELETE: everything left over goes to query string.
29
+ // - POST/PUT/PATCH: everything left over goes to body.
22
30
  const pathParams = extractPathParams(tool.path);
23
- const remainingParams = Object.fromEntries(Object.entries(input).filter(([k]) => !pathParams.includes(k)));
31
+ const declaredQueryParams = tool.query_params || [];
32
+ const remainingParams = {};
33
+ const toolQueryParams = {};
34
+ for (const [k, v] of Object.entries(input)) {
35
+ if (pathParams.includes(k))
36
+ continue;
37
+ if (declaredQueryParams.includes(k)) {
38
+ // Skip undefined / null so optional query fields don't show up
39
+ // in the URL as empty strings.
40
+ if (v !== undefined && v !== null && v !== "") {
41
+ toolQueryParams[k] = v;
42
+ }
43
+ continue;
44
+ }
45
+ remainingParams[k] = v;
46
+ }
24
47
  let finalUrl = url;
25
- const allQueryParams = { ...authQueryParams };
48
+ const allQueryParams = { ...authQueryParams, ...toolQueryParams };
26
49
  if (tool.method === "GET" || tool.method === "DELETE") {
27
50
  Object.assign(allQueryParams, remainingParams);
28
51
  }
@@ -49,12 +72,12 @@ export async function executeTool(opts) {
49
72
  }
50
73
  }
51
74
  }
52
- // Append query params to URL for GET/DELETE (or auth params for any method)
53
- if (tool.method === "GET" || tool.method === "DELETE") {
54
- const qs = buildQueryString(allQueryParams);
55
- if (qs)
56
- finalUrl += `?${qs}`;
57
- }
75
+ // Append query params to URL. For GET/DELETE this includes everything;
76
+ // for POST/PUT/PATCH it includes only auth + tool-declared query params
77
+ // (the body bucket is sent as a JSON body separately above).
78
+ const qs = buildQueryString(allQueryParams);
79
+ if (qs)
80
+ finalUrl += (finalUrl.includes("?") ? "&" : "?") + qs;
58
81
  // 5. Execute the request
59
82
  try {
60
83
  const response = await fetch(finalUrl, fetchOpts);
@@ -1 +1 @@
1
- {"version":3,"file":"http-executor.js","sourceRoot":"","sources":["../src/http-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-executor.js","sourceRoot":"","sources":["../src/http-executor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAErE,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,WAAW,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,WAAW,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,WAAW,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAkBnE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,gBAAgB,CAAC,CA4C3B;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,gBAAgB,CAAC,CA8B3B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,gBAAgB,EACxB,QAAQ,CAAC,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,qBAAqB,CAAC,CAchC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,qBAAqB,GAAG,OAAO,CAK1E"}
1
+ {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAErE,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,WAAW,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,WAAW,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,WAAW,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAiCnE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,gBAAgB,CAAC,CA4C3B;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,gBAAgB,CAAC,CA8B3B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,gBAAgB,EACxB,QAAQ,CAAC,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,qBAAqB,CAAC,CAchC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,qBAAqB,GAAG,OAAO,CAK1E"}
package/dist/oauth.js CHANGED
@@ -15,7 +15,22 @@ export function getAuthorizationUrl(opts) {
15
15
  if (opts.state) {
16
16
  params.set("state", opts.state);
17
17
  }
18
- return `${oauth.authorize_url}?${params.toString()}`;
18
+ // Merge in provider-specific extras (e.g. Google's access_type=offline
19
+ // + prompt=consent which are required to actually receive a
20
+ // refresh_token on every consent, not just the first one). Standard
21
+ // params above are not allowed to be clobbered — flow-critical fields
22
+ // like response_type and client_id stay locked.
23
+ if (oauth.extra_authorize_params) {
24
+ for (const [k, v] of Object.entries(oauth.extra_authorize_params)) {
25
+ if (!params.has(k))
26
+ params.set(k, v);
27
+ }
28
+ }
29
+ // Use the right separator if the authorize_url already has a query
30
+ // string (rare but legal — some templates encode static prefilters
31
+ // there).
32
+ const sep = oauth.authorize_url.includes("?") ? "&" : "?";
33
+ return `${oauth.authorize_url}${sep}${params.toString()}`;
19
34
  }
20
35
  /**
21
36
  * Exchange an authorization code for access/refresh tokens.
package/dist/oauth.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -68,6 +68,7 @@ export interface OAuthConfig {
68
68
  pkce: boolean;
69
69
  setup_url?: string;
70
70
  setup_steps?: string[];
71
+ extra_authorize_params?: Record<string, string>;
71
72
  }
72
73
  export interface AppToolTemplate {
73
74
  name: string;
@@ -75,6 +76,7 @@ export interface AppToolTemplate {
75
76
  method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
76
77
  path: string;
77
78
  input_schema: Record<string, unknown>;
79
+ query_params?: string[];
78
80
  response_path?: string;
79
81
  }
80
82
  export interface Connection {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,yBAAyB,CAAC;CAC1C;AAED,MAAM,WAAW,yBAAyB;IACxC,0CAA0C;IAC1C,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;IACjC,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAClC,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,iBAAiB,CAAC,EAAE,eAAe,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;CAC5B;AAED,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEjE,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAID,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,QAAQ,CAAC;IACpB,WAAW,EAAE,qBAAqB,CAAC;IACnC,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACnD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAID,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,EAAE,gBAAgB,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACvC,CAAC;CACH;AAKD,MAAM,WAAW,mBAAmB;IAElC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,YAAY,GAAG,YAAY,CAAC,GAAG,UAAU,CAAC;IACzF,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;IAC7C,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,UAAU,EAAE,CAAC;IACzD,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,IAAI,CAAC;IAC9E,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAGtC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CAChC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apteva/integrations",
3
- "version": "0.3.43",
3
+ "version": "0.3.45",
4
4
  "description": "Local integrations, connections, and webhooks for Apteva. Self-contained app templates, OAuth engine, and trigger provider.",
5
5
  "author": "Apteva <hello@apteva.com>",
6
6
  "license": "Elastic-2.0",
@@ -49,13 +49,18 @@
49
49
  "https://www.googleapis.com/auth/gmail.settings.basic"
50
50
  ],
51
51
  "client_id_required": true,
52
- "pkce": false
52
+ "pkce": false,
53
+ "extra_authorize_params": {
54
+ "access_type": "offline",
55
+ "prompt": "consent",
56
+ "include_granted_scopes": "true"
57
+ }
53
58
  }
54
59
  },
55
60
  "tools": [
56
61
  {
57
62
  "name": "send_email",
58
- "description": "Send an email message. Provide plain-text fields (to, subject, body) the system handles RFC 2822 encoding and UTF-8 character support automatically. For HTML emails, use htmlBody instead of or alongside body.",
63
+ "description": "Send an email message. Provide plain-text fields (to, subject, body) \u2014 the system handles RFC 2822 encoding and UTF-8 character support automatically. For HTML emails, use htmlBody instead of or alongside body.",
59
64
  "method": "POST",
60
65
  "path": "/users/me/messages/send",
61
66
  "input_schema": {
@@ -111,7 +116,7 @@
111
116
  },
112
117
  {
113
118
  "name": "list_messages",
114
- "description": "List email message IDs matching a query. Returns only message IDs and thread IDs use gmail-get-message to fetch full content (subject, body, headers). Supports Gmail search syntax (e.g. 'from:user@example.com', 'is:unread', 'subject:hello', 'newer_than:2d', 'has:attachment')",
119
+ "description": "List email message IDs matching a query. Returns only message IDs and thread IDs \u2014 use gmail-get-message to fetch full content (subject, body, headers). Supports Gmail search syntax (e.g. 'from:user@example.com', 'is:unread', 'subject:hello', 'newer_than:2d', 'has:attachment')",
115
120
  "method": "GET",
116
121
  "path": "/users/me/messages",
117
122
  "input_schema": {
@@ -136,7 +141,7 @@
136
141
  "items": {
137
142
  "type": "string"
138
143
  },
139
- "description": "Label IDs to filter by only messages matching ALL specified labels are returned (e.g. ['INBOX'], ['INBOX', 'UNREAD'], ['STARRED'])"
144
+ "description": "Label IDs to filter by \u2014 only messages matching ALL specified labels are returned (e.g. ['INBOX'], ['INBOX', 'UNREAD'], ['STARRED'])"
140
145
  },
141
146
  "includeSpamTrash": {
142
147
  "type": "boolean",
@@ -302,7 +307,7 @@
302
307
  },
303
308
  {
304
309
  "name": "list_threads",
305
- "description": "List email thread IDs with optional search. Returns thread IDs and snippets use gmail-get-thread to fetch full conversation messages",
310
+ "description": "List email thread IDs with optional search. Returns thread IDs and snippets \u2014 use gmail-get-thread to fetch full conversation messages",
306
311
  "method": "GET",
307
312
  "path": "/users/me/threads",
308
313
  "input_schema": {
@@ -327,7 +332,7 @@
327
332
  "items": {
328
333
  "type": "string"
329
334
  },
330
- "description": "Label IDs to filter by only threads matching ALL specified labels (e.g. ['INBOX'], ['INBOX', 'UNREAD'])"
335
+ "description": "Label IDs to filter by \u2014 only threads matching ALL specified labels (e.g. ['INBOX'], ['INBOX', 'UNREAD'])"
331
336
  },
332
337
  "includeSpamTrash": {
333
338
  "type": "boolean",
@@ -635,7 +640,7 @@
635
640
  },
636
641
  {
637
642
  "name": "create_draft",
638
- "description": "Create a new email draft. Provide plain-text fields (to, subject, body) the system handles RFC 2822 encoding and UTF-8 character support automatically. For HTML drafts, use htmlBody.",
643
+ "description": "Create a new email draft. Provide plain-text fields (to, subject, body) \u2014 the system handles RFC 2822 encoding and UTF-8 character support automatically. For HTML drafts, use htmlBody.",
639
644
  "method": "POST",
640
645
  "path": "/users/me/drafts",
641
646
  "input_schema": {
@@ -890,4 +895,4 @@
890
895
  }
891
896
  }
892
897
  ]
893
- }
898
+ }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "slug": "google-ads",
3
3
  "name": "Google Ads",
4
- "description": "Google Ads API v23 manage campaigns, ad groups, ads, keywords, budgets, and run performance reports via GAQL queries",
4
+ "description": "Google Ads API v23 \u2014 manage campaigns, ad groups, ads, keywords, budgets, and run performance reports via GAQL queries",
5
5
  "logo": "https://www.google.com/s2/favicons?domain=ads.google.com&sz=128",
6
6
  "categories": [
7
7
  "advertising",
@@ -54,7 +54,12 @@
54
54
  "https://www.googleapis.com/auth/adwords"
55
55
  ],
56
56
  "client_id_required": true,
57
- "pkce": false
57
+ "pkce": false,
58
+ "extra_authorize_params": {
59
+ "access_type": "offline",
60
+ "prompt": "consent",
61
+ "include_granted_scopes": "true"
62
+ }
58
63
  }
59
64
  },
60
65
  "tools": [
@@ -101,7 +106,7 @@
101
106
  },
102
107
  {
103
108
  "name": "search_stream",
104
- "description": "Run a GAQL query using streaming returns all results at once without pagination. Better for large result sets. Same query syntax as google-ads-search.",
109
+ "description": "Run a GAQL query using streaming \u2014 returns all results at once without pagination. Better for large result sets. Same query syntax as google-ads-search.",
105
110
  "method": "POST",
106
111
  "path": "/customers/{customer_id}/googleAds:searchStream",
107
112
  "input_schema": {
@@ -254,7 +259,7 @@
254
259
  },
255
260
  {
256
261
  "name": "bulk_mutate",
257
- "description": "Create or modify multiple resource types in a single atomic request budgets, campaigns, ad groups, and ads together. Uses temporary resource IDs (negative numbers) to reference resources created in the same request.\n\nExample creating a full campaign:\n{\"mutateOperations\": [{\"campaignBudgetOperation\": {\"create\": {\"resourceName\": \"customers/1234/campaignBudgets/-1\", \"name\": \"Budget\", \"amountMicros\": \"50000000\"}}}, {\"campaignOperation\": {\"create\": {\"resourceName\": \"customers/1234/campaigns/-2\", \"name\": \"My Campaign\", \"campaignBudget\": \"customers/1234/campaignBudgets/-1\", \"advertisingChannelType\": \"SEARCH\", \"status\": \"PAUSED\"}}}, {\"adGroupOperation\": {\"create\": {\"campaign\": \"customers/1234/campaigns/-2\", \"name\": \"Ad Group 1\"}}}]}",
262
+ "description": "Create or modify multiple resource types in a single atomic request \u2014 budgets, campaigns, ad groups, and ads together. Uses temporary resource IDs (negative numbers) to reference resources created in the same request.\n\nExample creating a full campaign:\n{\"mutateOperations\": [{\"campaignBudgetOperation\": {\"create\": {\"resourceName\": \"customers/1234/campaignBudgets/-1\", \"name\": \"Budget\", \"amountMicros\": \"50000000\"}}}, {\"campaignOperation\": {\"create\": {\"resourceName\": \"customers/1234/campaigns/-2\", \"name\": \"My Campaign\", \"campaignBudget\": \"customers/1234/campaignBudgets/-1\", \"advertisingChannelType\": \"SEARCH\", \"status\": \"PAUSED\"}}}, {\"adGroupOperation\": {\"create\": {\"campaign\": \"customers/1234/campaigns/-2\", \"name\": \"Ad Group 1\"}}}]}",
258
263
  "method": "POST",
259
264
  "path": "/customers/{customer_id}/googleAds:mutate",
260
265
  "input_schema": {
@@ -283,4 +288,4 @@
283
288
  }
284
289
  }
285
290
  ]
286
- }
291
+ }
@@ -46,7 +46,12 @@
46
46
  "https://www.googleapis.com/auth/calendar.settings.readonly"
47
47
  ],
48
48
  "client_id_required": true,
49
- "pkce": false
49
+ "pkce": false,
50
+ "extra_authorize_params": {
51
+ "access_type": "offline",
52
+ "prompt": "consent",
53
+ "include_granted_scopes": "true"
54
+ }
50
55
  }
51
56
  },
52
57
  "tools": [
@@ -1045,4 +1050,4 @@
1045
1050
  }
1046
1051
  }
1047
1052
  ]
1048
- }
1053
+ }
@@ -44,7 +44,12 @@
44
44
  "https://www.googleapis.com/auth/documents.readonly"
45
45
  ],
46
46
  "client_id_required": true,
47
- "pkce": false
47
+ "pkce": false,
48
+ "extra_authorize_params": {
49
+ "access_type": "offline",
50
+ "prompt": "consent",
51
+ "include_granted_scopes": "true"
52
+ }
48
53
  }
49
54
  },
50
55
  "tools": [
@@ -287,4 +292,4 @@
287
292
  }
288
293
  }
289
294
  ]
290
- }
295
+ }
@@ -47,7 +47,12 @@
47
47
  "https://www.googleapis.com/auth/drive.metadata.readonly"
48
48
  ],
49
49
  "client_id_required": true,
50
- "pkce": false
50
+ "pkce": false,
51
+ "extra_authorize_params": {
52
+ "access_type": "offline",
53
+ "prompt": "consent",
54
+ "include_granted_scopes": "true"
55
+ }
51
56
  }
52
57
  },
53
58
  "tools": [
@@ -369,4 +374,4 @@
369
374
  }
370
375
  }
371
376
  ]
372
- }
377
+ }
@@ -1,41 +1,20 @@
1
1
  {
2
2
  "slug": "google-sheets",
3
3
  "name": "Google Sheets",
4
- "description": "MCP server for Google Sheets - spreadsheets, cells, formulas, and data management via the Sheets REST API",
4
+ "description": "Google Sheets API v4 read, write, append, clear, and batch-mutate spreadsheets. Includes the generic spreadsheets:batchUpdate endpoint which exposes every formatting / sheet-management / find-replace operation Google supports.",
5
5
  "logo": "https://www.google.com/s2/favicons?domain=sheets.google.com&sz=128",
6
- "categories": [
7
- "spreadsheets",
8
- "data",
9
- "formulas",
10
- "productivity",
11
- "google"
12
- ],
6
+ "categories": ["spreadsheets", "google", "data", "productivity"],
13
7
  "base_url": "https://sheets.googleapis.com/v4",
14
8
  "auth": {
15
- "types": [
16
- "bearer",
17
- "oauth2"
18
- ],
9
+ "types": ["bearer", "oauth2"],
19
10
  "headers": {
20
- "Authorization": "Bearer {{token}}"
11
+ "Authorization": "Bearer {{accessToken}}"
21
12
  },
22
13
  "credential_fields": [
23
- {
24
- "name": "accessToken",
25
- "label": "accessToken"
26
- },
27
- {
28
- "name": "refreshToken",
29
- "label": "refreshToken"
30
- },
31
- {
32
- "name": "expiresIn",
33
- "label": "expiresIn"
34
- },
35
- {
36
- "name": "tokenType",
37
- "label": "tokenType"
38
- }
14
+ { "name": "accessToken", "label": "accessToken" },
15
+ { "name": "refreshToken", "label": "refreshToken" },
16
+ { "name": "expiresIn", "label": "expiresIn" },
17
+ { "name": "tokenType", "label": "tokenType" }
39
18
  ],
40
19
  "oauth2": {
41
20
  "authorize_url": "https://accounts.google.com/o/oauth2/v2/auth",
@@ -45,13 +24,18 @@
45
24
  "https://www.googleapis.com/auth/spreadsheets.readonly"
46
25
  ],
47
26
  "client_id_required": true,
48
- "pkce": false
27
+ "pkce": false,
28
+ "extra_authorize_params": {
29
+ "access_type": "offline",
30
+ "prompt": "consent",
31
+ "include_granted_scopes": "true"
32
+ }
49
33
  }
50
34
  },
51
35
  "tools": [
52
36
  {
53
37
  "name": "create_spreadsheet",
54
- "description": "Create a new Google Sheets spreadsheet with optional initial sheet names",
38
+ "description": "Create a new Google Sheets spreadsheet. Pass `properties.title` to set the name. Optionally pre-create sheets with `sheets[]`. Returns the full Spreadsheet object including spreadsheetId.",
55
39
  "method": "POST",
56
40
  "path": "/spreadsheets",
57
41
  "input_schema": {
@@ -59,283 +43,420 @@
59
43
  "properties": {
60
44
  "properties": {
61
45
  "type": "object",
62
- "description": "Spreadsheet properties",
63
- "properties": {
64
- "title": {
65
- "type": "string",
66
- "description": "Title of the spreadsheet"
67
- }
68
- },
69
- "required": [
70
- "title"
71
- ]
46
+ "description": "Spreadsheet-level properties. Most useful: { title: string, locale: string, timeZone: string }."
72
47
  },
73
48
  "sheets": {
74
49
  "type": "array",
75
- "description": "Initial sheets to create",
76
- "items": {
77
- "type": "object",
78
- "properties": {
79
- "properties": {
80
- "type": "object",
81
- "properties": {
82
- "title": {
83
- "type": "string"
84
- }
85
- }
86
- }
87
- }
88
- }
50
+ "items": { "type": "object" },
51
+ "description": "Optional initial sheet definitions. Each entry is a Sheet object — minimum { properties: { title: 'Sheet1' } }."
89
52
  }
90
53
  },
91
- "required": [
92
- "properties"
93
- ]
54
+ "required": ["properties"]
94
55
  }
95
56
  },
96
57
  {
97
58
  "name": "get_spreadsheet",
98
- "description": "Get spreadsheet metadata including sheet names, properties, and named ranges",
59
+ "description": "Get spreadsheet metadata: sheet names, sheet IDs, named ranges, properties. Use the `fields` mask to limit response size — for just sheet names, set `fields=sheets.properties`.",
99
60
  "method": "GET",
100
61
  "path": "/spreadsheets/{spreadsheetId}",
101
62
  "input_schema": {
102
63
  "type": "object",
103
64
  "properties": {
104
- "spreadsheetId": {
105
- "type": "string",
106
- "description": "ID of the spreadsheet"
65
+ "spreadsheetId": { "type": "string" },
66
+ "ranges": {
67
+ "type": "array",
68
+ "items": { "type": "string" },
69
+ "description": "Optional A1 ranges to include grid data for. Without this only metadata is returned."
70
+ },
71
+ "includeGridData": {
72
+ "type": "boolean",
73
+ "default": false,
74
+ "description": "Include cell values + formatting in the response. Heavy — only set when needed."
107
75
  },
108
76
  "fields": {
109
77
  "type": "string",
110
- "description": "Fields to return",
111
- "default": "spreadsheetId,properties,sheets.properties,namedRanges"
78
+ "default": "spreadsheetId,properties,sheets.properties,namedRanges",
79
+ "description": "Comma-separated FieldMask to limit response size."
112
80
  }
113
81
  },
114
- "required": [
115
- "spreadsheetId"
116
- ]
82
+ "required": ["spreadsheetId"]
83
+ },
84
+ "query_params": ["ranges", "includeGridData", "fields"]
85
+ },
86
+ {
87
+ "name": "get_by_filter",
88
+ "description": "Get spreadsheet by data filters — narrows the response to specific A1 ranges, GridRanges, or developer-metadata-tagged cells without including the entire grid. Use this when you know which cells you want but don't have a single contiguous A1 range.",
89
+ "method": "POST",
90
+ "path": "/spreadsheets/{spreadsheetId}:getByDataFilter",
91
+ "input_schema": {
92
+ "type": "object",
93
+ "properties": {
94
+ "spreadsheetId": { "type": "string" },
95
+ "dataFilters": {
96
+ "type": "array",
97
+ "items": { "type": "object" },
98
+ "description": "Array of DataFilter objects. Each is one of: { a1Range: 'Sheet1!A1:B10' }, { gridRange: { sheetId, startRowIndex, endRowIndex, startColumnIndex, endColumnIndex } }, or { developerMetadataLookup: {...} }."
99
+ },
100
+ "includeGridData": { "type": "boolean", "default": false }
101
+ },
102
+ "required": ["spreadsheetId", "dataFilters"]
103
+ }
104
+ },
105
+ {
106
+ "name": "batch_update",
107
+ "description": "Generic spreadsheet batchUpdate — the catch-all endpoint for every spreadsheet mutation Google supports. The agent passes a list of Request objects; each Request has exactly one operation key. Common operations: addSheet, deleteSheet, updateSheetProperties, updateSpreadsheetProperties, findReplace, insertDimension, deleteDimension, appendDimension, autoResizeDimensions, updateDimensionProperties, repeatCell (formatting), updateCells, mergeCells, unmergeCells, setBasicFilter, clearBasicFilter, addChart, addConditionalFormatRule, updateConditionalFormatRule, deleteConditionalFormatRule, setDataValidation, addProtectedRange, deleteProtectedRange, addNamedRange, deleteNamedRange, addBanding, deleteBanding, addFilterView, sortRange, cutPaste, copyPaste, randomizeRange, pasteData. Example for find/replace across all sheets: { spreadsheetId, requests: [{ findReplace: { find: 'old', replacement: 'new', allSheets: true, matchCase: false } }] }. See https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/request for the full Request schema.",
108
+ "method": "POST",
109
+ "path": "/spreadsheets/{spreadsheetId}:batchUpdate",
110
+ "input_schema": {
111
+ "type": "object",
112
+ "properties": {
113
+ "spreadsheetId": { "type": "string" },
114
+ "requests": {
115
+ "type": "array",
116
+ "items": { "type": "object" },
117
+ "description": "Array of Request objects. Each Request has exactly one operation key (e.g. addSheet, findReplace, repeatCell, …)."
118
+ },
119
+ "includeSpreadsheetInResponse": {
120
+ "type": "boolean",
121
+ "default": false,
122
+ "description": "Return the updated spreadsheet in the response."
123
+ },
124
+ "responseRanges": {
125
+ "type": "array",
126
+ "items": { "type": "string" }
127
+ },
128
+ "responseIncludeGridData": { "type": "boolean", "default": false }
129
+ },
130
+ "required": ["spreadsheetId", "requests"]
117
131
  }
118
132
  },
119
133
  {
120
134
  "name": "read_range",
121
- "description": "Read values from a range in a spreadsheet using A1 notation (e.g. 'Sheet1!A1:D10')",
135
+ "description": "Read values from a single A1 range, e.g. 'Sheet1!A1:D10' or 'Sheet1!A:A' for a whole column. Returns a 2D array of cell values. For multiple ranges in one call use batch_get.",
122
136
  "method": "GET",
123
137
  "path": "/spreadsheets/{spreadsheetId}/values/{range}",
124
138
  "input_schema": {
125
139
  "type": "object",
126
140
  "properties": {
127
- "spreadsheetId": {
128
- "type": "string",
129
- "description": "ID of the spreadsheet"
130
- },
131
- "range": {
132
- "type": "string",
133
- "description": "A1 notation range (e.g. 'Sheet1!A1:D10', 'Sheet1', 'A1:B5')"
134
- },
141
+ "spreadsheetId": { "type": "string" },
142
+ "range": { "type": "string", "description": "A1 notation, e.g. 'Sheet1!A1:D10' or 'Sheet1!A:A'." },
135
143
  "valueRenderOption": {
136
144
  "type": "string",
137
- "description": "How values should be rendered",
138
- "enum": [
139
- "FORMATTED_VALUE",
140
- "UNFORMATTED_VALUE",
141
- "FORMULA"
142
- ],
143
- "default": "FORMATTED_VALUE"
145
+ "enum": ["FORMATTED_VALUE", "UNFORMATTED_VALUE", "FORMULA"],
146
+ "default": "FORMATTED_VALUE",
147
+ "description": "How values should be represented. FORMULA returns the literal cell formula instead of the computed value."
144
148
  },
145
149
  "dateTimeRenderOption": {
146
150
  "type": "string",
147
- "description": "How dates should be rendered",
148
- "enum": [
149
- "SERIAL_NUMBER",
150
- "FORMATTED_STRING"
151
- ],
151
+ "enum": ["SERIAL_NUMBER", "FORMATTED_STRING"],
152
152
  "default": "FORMATTED_STRING"
153
153
  },
154
154
  "majorDimension": {
155
155
  "type": "string",
156
- "description": "Major dimension of results",
157
- "enum": [
158
- "ROWS",
159
- "COLUMNS"
160
- ],
156
+ "enum": ["ROWS", "COLUMNS"],
161
157
  "default": "ROWS"
162
158
  }
163
159
  },
164
- "required": [
165
- "spreadsheetId",
166
- "range"
167
- ]
160
+ "required": ["spreadsheetId", "range"]
168
161
  }
169
162
  },
170
163
  {
171
164
  "name": "write_range",
172
- "description": "Write values to a range in a spreadsheet. Overwrites existing data in the range.",
165
+ "description": "Write values to a single A1 range. Overwrites existing data in the range. Pass `values` as a 2D array of rows. Use valueInputOption='USER_ENTERED' (default) so '=SUM(A1:A10)' becomes a real formula and '12.5%' becomes a percentage; use 'RAW' to write strings literally with no parsing.",
173
166
  "method": "PUT",
174
167
  "path": "/spreadsheets/{spreadsheetId}/values/{range}",
175
168
  "input_schema": {
176
169
  "type": "object",
177
170
  "properties": {
178
- "spreadsheetId": {
179
- "type": "string",
180
- "description": "ID of the spreadsheet"
171
+ "spreadsheetId": { "type": "string" },
172
+ "range": { "type": "string", "description": "A1 notation, e.g. 'Sheet1!A1:D10'." },
173
+ "values": {
174
+ "type": "array",
175
+ "items": { "type": "array" },
176
+ "description": "2D array of rows. Each row is an array of cell values (strings, numbers, booleans, or formula strings starting with '=')."
181
177
  },
182
- "range": {
178
+ "majorDimension": {
183
179
  "type": "string",
184
- "description": "A1 notation range to write to (e.g. 'Sheet1!A1:D5')"
180
+ "enum": ["ROWS", "COLUMNS"],
181
+ "default": "ROWS"
185
182
  },
186
183
  "valueInputOption": {
187
184
  "type": "string",
188
- "description": "How input data should be interpreted",
189
- "enum": [
190
- "RAW",
191
- "USER_ENTERED"
192
- ],
193
- "default": "USER_ENTERED"
185
+ "enum": ["RAW", "USER_ENTERED"],
186
+ "default": "USER_ENTERED",
187
+ "description": "How input is interpreted. USER_ENTERED parses formulas, dates, percentages, etc. like a human typing into the UI. RAW writes the exact string."
194
188
  },
195
- "values": {
196
- "type": "array",
197
- "description": "2D array of values to write. Each inner array is a row.",
198
- "items": {
199
- "type": "array"
200
- }
189
+ "includeValuesInResponse": { "type": "boolean", "default": false },
190
+ "responseValueRenderOption": {
191
+ "type": "string",
192
+ "enum": ["FORMATTED_VALUE", "UNFORMATTED_VALUE", "FORMULA"]
193
+ },
194
+ "responseDateTimeRenderOption": {
195
+ "type": "string",
196
+ "enum": ["SERIAL_NUMBER", "FORMATTED_STRING"]
201
197
  }
202
198
  },
203
- "required": [
204
- "spreadsheetId",
205
- "range",
206
- "values"
207
- ]
208
- }
199
+ "required": ["spreadsheetId", "range", "values"]
200
+ },
201
+ "query_params": [
202
+ "valueInputOption",
203
+ "includeValuesInResponse",
204
+ "responseValueRenderOption",
205
+ "responseDateTimeRenderOption"
206
+ ]
209
207
  },
210
208
  {
211
209
  "name": "append_rows",
212
- "description": "Append rows of data after the last row with data in a sheet",
210
+ "description": "Append rows after the last row containing data in a sheet. Unlike write_range, this finds the next empty row automatically. Use insertDataOption='INSERT_ROWS' (default) to push existing rows down, or 'OVERWRITE' to replace.",
213
211
  "method": "POST",
214
212
  "path": "/spreadsheets/{spreadsheetId}/values/{range}:append",
215
213
  "input_schema": {
216
214
  "type": "object",
217
215
  "properties": {
218
- "spreadsheetId": {
216
+ "spreadsheetId": { "type": "string" },
217
+ "range": {
219
218
  "type": "string",
220
- "description": "ID of the spreadsheet"
219
+ "description": "A1 notation of any cell in the table to append to. Google walks down the column to find the last data row."
221
220
  },
222
- "range": {
221
+ "values": {
222
+ "type": "array",
223
+ "items": { "type": "array" },
224
+ "description": "2D array of rows to append."
225
+ },
226
+ "majorDimension": {
223
227
  "type": "string",
224
- "description": "A1 notation of the table range to append to (e.g. 'Sheet1!A:D' or 'Sheet1')"
228
+ "enum": ["ROWS", "COLUMNS"],
229
+ "default": "ROWS"
225
230
  },
226
231
  "valueInputOption": {
227
232
  "type": "string",
228
- "description": "How input data should be interpreted",
229
- "enum": [
230
- "RAW",
231
- "USER_ENTERED"
232
- ],
233
+ "enum": ["RAW", "USER_ENTERED"],
233
234
  "default": "USER_ENTERED"
234
235
  },
235
236
  "insertDataOption": {
236
237
  "type": "string",
237
- "description": "How data should be inserted",
238
- "enum": [
239
- "OVERWRITE",
240
- "INSERT_ROWS"
241
- ],
238
+ "enum": ["OVERWRITE", "INSERT_ROWS"],
242
239
  "default": "INSERT_ROWS"
243
240
  },
244
- "values": {
245
- "type": "array",
246
- "description": "2D array of rows to append",
247
- "items": {
248
- "type": "array"
249
- }
241
+ "includeValuesInResponse": { "type": "boolean", "default": false },
242
+ "responseValueRenderOption": {
243
+ "type": "string",
244
+ "enum": ["FORMATTED_VALUE", "UNFORMATTED_VALUE", "FORMULA"]
245
+ },
246
+ "responseDateTimeRenderOption": {
247
+ "type": "string",
248
+ "enum": ["SERIAL_NUMBER", "FORMATTED_STRING"]
250
249
  }
251
250
  },
252
- "required": [
253
- "spreadsheetId",
254
- "range",
255
- "values"
256
- ]
257
- }
251
+ "required": ["spreadsheetId", "range", "values"]
252
+ },
253
+ "query_params": [
254
+ "valueInputOption",
255
+ "insertDataOption",
256
+ "includeValuesInResponse",
257
+ "responseValueRenderOption",
258
+ "responseDateTimeRenderOption"
259
+ ]
258
260
  },
259
261
  {
260
262
  "name": "clear_range",
261
- "description": "Clear values from a range in a spreadsheet (keeps formatting)",
263
+ "description": "Clear values from a single A1 range. Keeps formatting and other cell properties — only the values are wiped.",
262
264
  "method": "POST",
263
265
  "path": "/spreadsheets/{spreadsheetId}/values/{range}:clear",
264
266
  "input_schema": {
265
267
  "type": "object",
266
268
  "properties": {
267
- "spreadsheetId": {
268
- "type": "string",
269
- "description": "ID of the spreadsheet"
270
- },
271
- "range": {
272
- "type": "string",
273
- "description": "A1 notation range to clear (e.g. 'Sheet1!A1:D10')"
274
- }
269
+ "spreadsheetId": { "type": "string" },
270
+ "range": { "type": "string", "description": "A1 notation, e.g. 'Sheet1!A1:D10'." }
275
271
  },
276
- "required": [
277
- "spreadsheetId",
278
- "range"
279
- ]
272
+ "required": ["spreadsheetId", "range"]
280
273
  }
281
274
  },
282
275
  {
283
276
  "name": "batch_get",
284
- "description": "Read multiple ranges from a spreadsheet in a single request",
277
+ "description": "Read multiple A1 ranges in a single request. Pass `ranges` as an array of A1 strings. Returns one ValueRange per requested range.",
285
278
  "method": "GET",
286
279
  "path": "/spreadsheets/{spreadsheetId}/values:batchGet",
287
280
  "input_schema": {
288
281
  "type": "object",
289
282
  "properties": {
290
- "spreadsheetId": {
283
+ "spreadsheetId": { "type": "string" },
284
+ "ranges": {
285
+ "type": "array",
286
+ "items": { "type": "string" },
287
+ "description": "Array of A1 ranges, e.g. ['Sheet1!A1:B10', 'Sheet2!C1:C100']."
288
+ },
289
+ "valueRenderOption": {
291
290
  "type": "string",
292
- "description": "ID of the spreadsheet"
291
+ "enum": ["FORMATTED_VALUE", "UNFORMATTED_VALUE", "FORMULA"],
292
+ "default": "FORMATTED_VALUE"
293
293
  },
294
- "ranges": {
294
+ "dateTimeRenderOption": {
295
295
  "type": "string",
296
- "description": "Comma-separated A1 notation ranges (e.g. 'Sheet1!A1:B5,Sheet2!A1:C10')"
296
+ "enum": ["SERIAL_NUMBER", "FORMATTED_STRING"],
297
+ "default": "FORMATTED_STRING"
298
+ },
299
+ "majorDimension": {
300
+ "type": "string",
301
+ "enum": ["ROWS", "COLUMNS"],
302
+ "default": "ROWS"
303
+ }
304
+ },
305
+ "required": ["spreadsheetId", "ranges"]
306
+ }
307
+ },
308
+ {
309
+ "name": "batch_get_by_filter",
310
+ "description": "Read multiple ranges selected by data filters (A1, GridRange, or developer metadata) in a single request. Use this when you want filter-style selection rather than a literal list of A1 ranges.",
311
+ "method": "POST",
312
+ "path": "/spreadsheets/{spreadsheetId}/values:batchGetByDataFilter",
313
+ "input_schema": {
314
+ "type": "object",
315
+ "properties": {
316
+ "spreadsheetId": { "type": "string" },
317
+ "dataFilters": {
318
+ "type": "array",
319
+ "items": { "type": "object" },
320
+ "description": "Array of DataFilter objects."
297
321
  },
298
322
  "valueRenderOption": {
299
323
  "type": "string",
300
- "description": "How values should be rendered",
301
- "enum": [
302
- "FORMATTED_VALUE",
303
- "UNFORMATTED_VALUE",
304
- "FORMULA"
305
- ],
324
+ "enum": ["FORMATTED_VALUE", "UNFORMATTED_VALUE", "FORMULA"],
306
325
  "default": "FORMATTED_VALUE"
326
+ },
327
+ "dateTimeRenderOption": {
328
+ "type": "string",
329
+ "enum": ["SERIAL_NUMBER", "FORMATTED_STRING"],
330
+ "default": "FORMATTED_STRING"
331
+ },
332
+ "majorDimension": {
333
+ "type": "string",
334
+ "enum": ["ROWS", "COLUMNS"],
335
+ "default": "ROWS"
307
336
  }
308
337
  },
309
- "required": [
310
- "spreadsheetId",
311
- "ranges"
312
- ]
338
+ "required": ["spreadsheetId", "dataFilters"]
313
339
  }
314
340
  },
315
341
  {
316
- "name": "add_sheet",
317
- "description": "Add a new sheet (tab) to an existing spreadsheet",
342
+ "name": "batch_update_values",
343
+ "description": "Atomically write to multiple ranges in one request. Use when several updates need to land together. Pass `data` as an array of ValueRange objects ({ range, values, majorDimension? }).",
318
344
  "method": "POST",
319
- "path": "/spreadsheets/{spreadsheetId}:batchUpdate",
345
+ "path": "/spreadsheets/{spreadsheetId}/values:batchUpdate",
320
346
  "input_schema": {
321
347
  "type": "object",
322
348
  "properties": {
323
- "spreadsheetId": {
349
+ "spreadsheetId": { "type": "string" },
350
+ "data": {
351
+ "type": "array",
352
+ "items": { "type": "object" },
353
+ "description": "Array of ValueRange objects. Example: [{ range: 'Sheet1!A1', values: [['hello']] }, { range: 'Sheet2!B2', values: [['world']] }]."
354
+ },
355
+ "valueInputOption": {
324
356
  "type": "string",
325
- "description": "ID of the spreadsheet"
357
+ "enum": ["RAW", "USER_ENTERED"],
358
+ "default": "USER_ENTERED",
359
+ "description": "Required by the API. Note: lives in the BODY for batchUpdate (unlike single-range update where it's a query param)."
326
360
  },
327
- "requests": {
361
+ "includeValuesInResponse": { "type": "boolean", "default": false },
362
+ "responseValueRenderOption": {
363
+ "type": "string",
364
+ "enum": ["FORMATTED_VALUE", "UNFORMATTED_VALUE", "FORMULA"]
365
+ },
366
+ "responseDateTimeRenderOption": {
367
+ "type": "string",
368
+ "enum": ["SERIAL_NUMBER", "FORMATTED_STRING"]
369
+ }
370
+ },
371
+ "required": ["spreadsheetId", "data", "valueInputOption"]
372
+ }
373
+ },
374
+ {
375
+ "name": "batch_update_values_by_filter",
376
+ "description": "Atomically write to multiple ranges selected by data filters. Pass `data` as an array of DataFilterValueRange objects ({ dataFilter, values, majorDimension? }).",
377
+ "method": "POST",
378
+ "path": "/spreadsheets/{spreadsheetId}/values:batchUpdateByDataFilter",
379
+ "input_schema": {
380
+ "type": "object",
381
+ "properties": {
382
+ "spreadsheetId": { "type": "string" },
383
+ "data": {
328
384
  "type": "array",
329
- "description": "Batch update requests. For adding a sheet: [{\"addSheet\": {\"properties\": {\"title\": \"New Sheet\"}}}]",
330
- "items": {
331
- "type": "object"
332
- }
385
+ "items": { "type": "object" },
386
+ "description": "Array of DataFilterValueRange objects. Example: [{ dataFilter: { a1Range: 'Sheet1!A1:B2' }, values: [['x','y'],['z','w']] }]."
387
+ },
388
+ "valueInputOption": {
389
+ "type": "string",
390
+ "enum": ["RAW", "USER_ENTERED"],
391
+ "default": "USER_ENTERED"
392
+ },
393
+ "includeValuesInResponse": { "type": "boolean", "default": false },
394
+ "responseValueRenderOption": {
395
+ "type": "string",
396
+ "enum": ["FORMATTED_VALUE", "UNFORMATTED_VALUE", "FORMULA"]
397
+ },
398
+ "responseDateTimeRenderOption": {
399
+ "type": "string",
400
+ "enum": ["SERIAL_NUMBER", "FORMATTED_STRING"]
401
+ }
402
+ },
403
+ "required": ["spreadsheetId", "data", "valueInputOption"]
404
+ }
405
+ },
406
+ {
407
+ "name": "batch_clear_values",
408
+ "description": "Atomically clear values from multiple A1 ranges in one request. Keeps formatting.",
409
+ "method": "POST",
410
+ "path": "/spreadsheets/{spreadsheetId}/values:batchClear",
411
+ "input_schema": {
412
+ "type": "object",
413
+ "properties": {
414
+ "spreadsheetId": { "type": "string" },
415
+ "ranges": {
416
+ "type": "array",
417
+ "items": { "type": "string" },
418
+ "description": "Array of A1 ranges, e.g. ['Sheet1!A1:B10', 'Sheet2!C:C']."
419
+ }
420
+ },
421
+ "required": ["spreadsheetId", "ranges"]
422
+ }
423
+ },
424
+ {
425
+ "name": "batch_clear_values_by_filter",
426
+ "description": "Atomically clear values from multiple ranges selected by data filters.",
427
+ "method": "POST",
428
+ "path": "/spreadsheets/{spreadsheetId}/values:batchClearByDataFilter",
429
+ "input_schema": {
430
+ "type": "object",
431
+ "properties": {
432
+ "spreadsheetId": { "type": "string" },
433
+ "dataFilters": {
434
+ "type": "array",
435
+ "items": { "type": "object" }
436
+ }
437
+ },
438
+ "required": ["spreadsheetId", "dataFilters"]
439
+ }
440
+ },
441
+ {
442
+ "name": "copy_sheet",
443
+ "description": "Copy a single sheet (tab) from one spreadsheet to another. Useful for templates: create a master sheet, then copy it into per-customer files. Returns the new sheet's properties (sheetId, title, etc.) in the destination spreadsheet.",
444
+ "method": "POST",
445
+ "path": "/spreadsheets/{spreadsheetId}/sheets/{sheetId}:copyTo",
446
+ "input_schema": {
447
+ "type": "object",
448
+ "properties": {
449
+ "spreadsheetId": { "type": "string", "description": "Source spreadsheet ID." },
450
+ "sheetId": {
451
+ "type": "integer",
452
+ "description": "Numeric sheet ID of the tab to copy (NOT the sheet title). Get it from get_spreadsheet → sheets[].properties.sheetId."
453
+ },
454
+ "destinationSpreadsheetId": {
455
+ "type": "string",
456
+ "description": "Target spreadsheet ID where the sheet will be copied to."
333
457
  }
334
458
  },
335
- "required": [
336
- "spreadsheetId",
337
- "requests"
338
- ]
459
+ "required": ["spreadsheetId", "sheetId", "destinationSpreadsheetId"]
339
460
  }
340
461
  }
341
462
  ]
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "slug": "youtube-api",
3
3
  "name": "YouTube",
4
- "description": "YouTube Data API v3 manage videos, channels, playlists, search, analytics, and content publishing via OAuth2",
4
+ "description": "YouTube Data API v3 \u2014 manage videos, channels, playlists, search, analytics, and content publishing via OAuth2",
5
5
  "logo": "https://www.youtube.com/s/desktop/28b0985e/img/favicon_144x144.png",
6
6
  "categories": [
7
7
  "youtube",
@@ -53,7 +53,12 @@
53
53
  "https://www.googleapis.com/auth/yt-analytics.readonly"
54
54
  ],
55
55
  "client_id_required": true,
56
- "pkce": false
56
+ "pkce": false,
57
+ "extra_authorize_params": {
58
+ "access_type": "offline",
59
+ "prompt": "consent",
60
+ "include_granted_scopes": "true"
61
+ }
57
62
  }
58
63
  },
59
64
  "tools": [
@@ -269,7 +274,7 @@
269
274
  },
270
275
  {
271
276
  "name": "update_video",
272
- "description": "Update video metadata (title, description, tags, privacy, category, schedule). IMPORTANT: To schedule a video for future publish, you MUST set privacyStatus to 'private' AND provide publishAt as ISO 8601 datetime. Scheduling does NOT work with 'unlisted' or 'public' status YouTube requires the video to be 'private' first. You must provide the full snippet and/or status objects.",
277
+ "description": "Update video metadata (title, description, tags, privacy, category, schedule). IMPORTANT: To schedule a video for future publish, you MUST set privacyStatus to 'private' AND provide publishAt as ISO 8601 datetime. Scheduling does NOT work with 'unlisted' or 'public' status \u2014 YouTube requires the video to be 'private' first. You must provide the full snippet and/or status objects.",
273
278
  "method": "PUT",
274
279
  "path": "/videos",
275
280
  "input_schema": {
@@ -628,7 +633,7 @@
628
633
  },
629
634
  {
630
635
  "name": "list_playlist_items",
631
- "description": "List videos in a playlist. Works with any playlist ID including a channel's uploads playlist (from Get My Channel contentDetails.relatedPlaylists.uploads). Returns video IDs, titles, thumbnails, and positions.",
636
+ "description": "List videos in a playlist. Works with any playlist ID including a channel's uploads playlist (from Get My Channel \u2192 contentDetails.relatedPlaylists.uploads). Returns video IDs, titles, thumbnails, and positions.",
632
637
  "method": "GET",
633
638
  "path": "/playlistItems",
634
639
  "input_schema": {
@@ -888,4 +893,4 @@
888
893
  }
889
894
  }
890
895
  ]
891
- }
896
+ }