mcpscraper-cli 0.2.0 → 0.3.0

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.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Command-line interface for [mcpscraper.dev](https://mcpscraper.dev) and [memory.mcpscraper.dev](https://memory.mcpscraper.dev).
4
4
 
5
- The CLI provides friendly shortcuts for common operations plus universal discovery and invocation for every one of the 145 unified MCP tools.
5
+ The CLI provides friendly shortcuts for common operations plus universal discovery and invocation for every one of the 153 unified MCP tools.
6
6
 
7
7
  ## Install
8
8
 
@@ -28,7 +28,7 @@ mcpscraper tools describe prepare-memory-write
28
28
  mcpscraper tools call prepare-memory-write --args '{"title":"Example","content":"..."}' --json
29
29
  ```
30
30
 
31
- `tools list` contains exactly 145 manifest-backed names. `tools call` accepts any one of them. Tools marked destructive require `--yes`.
31
+ `tools list` contains exactly 153 manifest-backed names. `tools call` accepts any one of them. Tools marked destructive require `--yes`.
32
32
 
33
33
  ### `mcpscraper search <query>`
34
34
 
package/dist/bin/cli.js CHANGED
@@ -1779,6 +1779,383 @@ var MCP_TOOL_CATALOG = [
1779
1779
  "openWorldHint": false
1780
1780
  }
1781
1781
  },
1782
+ {
1783
+ "name": "list_service_connections",
1784
+ "category": "connections",
1785
+ "title": "List Connected Services",
1786
+ "description": "List every third-party service connection this MCP Scraper account has authorized, including Google Analytics, YouTube, Facebook Pages, LinkedIn, X, Meta Marketing, Slack, Gmail, Calendar, Drive, Zoom, Xero, and others. Returns the tenant-scoped connectionId plus exact readTools and actionTools. Get a connectionId and exact tool name here before calling read_service_connection or call_service_connection_action. For already-digested history, prefer the returned vaultName or tableName.",
1787
+ "inputSchema": {
1788
+ "$schema": "http://json-schema.org/draft-07/schema#",
1789
+ "type": "object",
1790
+ "properties": {}
1791
+ },
1792
+ "annotations": {
1793
+ "title": "List Connected Services",
1794
+ "readOnlyHint": true,
1795
+ "destructiveHint": false,
1796
+ "idempotentHint": true,
1797
+ "openWorldHint": false
1798
+ }
1799
+ },
1800
+ {
1801
+ "name": "slack_send_message",
1802
+ "category": "connections",
1803
+ "title": "Send Slack Message",
1804
+ "description": "Send a message to a Slack channel through a connected, action-enabled Slack connection. Requires a connectionId from list_service_connections with actionsEnabled true; the person must have explicitly turned actions on for that connection.",
1805
+ "inputSchema": {
1806
+ "type": "object",
1807
+ "properties": {
1808
+ "connectionId": {
1809
+ "type": "string",
1810
+ "minLength": 1,
1811
+ "description": "A Slack connectionId from list_service_connections, with actionsEnabled true."
1812
+ },
1813
+ "channel": {
1814
+ "type": "string",
1815
+ "minLength": 1,
1816
+ "description": `Slack channel ID to send to, e.g. "C1234567890". Get this from the connection's own read tools, not guessed.`
1817
+ },
1818
+ "text": {
1819
+ "type": "string",
1820
+ "minLength": 1,
1821
+ "maxLength": 4e3,
1822
+ "description": "Message text to send."
1823
+ }
1824
+ },
1825
+ "required": [
1826
+ "connectionId",
1827
+ "channel",
1828
+ "text"
1829
+ ],
1830
+ "additionalProperties": false,
1831
+ "$schema": "http://json-schema.org/draft-07/schema#"
1832
+ },
1833
+ "annotations": {
1834
+ "title": "Send Slack Message",
1835
+ "readOnlyHint": false,
1836
+ "destructiveHint": false,
1837
+ "idempotentHint": false,
1838
+ "openWorldHint": true
1839
+ }
1840
+ },
1841
+ {
1842
+ "name": "gmail_send_message",
1843
+ "category": "connections",
1844
+ "title": "Send Gmail Message",
1845
+ "description": "Send an email through a connected, action-enabled Gmail connection. Requires a connectionId from list_service_connections with actionsEnabled true; the person must have explicitly turned actions on for that connection.",
1846
+ "inputSchema": {
1847
+ "type": "object",
1848
+ "properties": {
1849
+ "connectionId": {
1850
+ "type": "string",
1851
+ "minLength": 1,
1852
+ "description": "A Gmail connectionId from list_service_connections, with actionsEnabled true."
1853
+ },
1854
+ "to": {
1855
+ "type": "string",
1856
+ "format": "email",
1857
+ "description": "Recipient email address."
1858
+ },
1859
+ "subject": {
1860
+ "type": "string",
1861
+ "minLength": 1,
1862
+ "maxLength": 500,
1863
+ "description": "Email subject line."
1864
+ },
1865
+ "body": {
1866
+ "type": "string",
1867
+ "minLength": 1,
1868
+ "maxLength": 5e4,
1869
+ "description": "Plain-text email body."
1870
+ }
1871
+ },
1872
+ "required": [
1873
+ "connectionId",
1874
+ "to",
1875
+ "subject",
1876
+ "body"
1877
+ ],
1878
+ "additionalProperties": false,
1879
+ "$schema": "http://json-schema.org/draft-07/schema#"
1880
+ },
1881
+ "annotations": {
1882
+ "title": "Send Gmail Message",
1883
+ "readOnlyHint": false,
1884
+ "destructiveHint": false,
1885
+ "idempotentHint": false,
1886
+ "openWorldHint": true
1887
+ }
1888
+ },
1889
+ {
1890
+ "name": "google_calendar_create_event",
1891
+ "category": "connections",
1892
+ "title": "Create Calendar Event",
1893
+ "description": "Create an event on a connected, action-enabled Google Calendar connection. Requires a connectionId from list_service_connections with actionsEnabled true; the person must have explicitly turned actions on for that connection.",
1894
+ "inputSchema": {
1895
+ "type": "object",
1896
+ "properties": {
1897
+ "connectionId": {
1898
+ "type": "string",
1899
+ "minLength": 1,
1900
+ "description": "A Google Calendar connectionId from list_service_connections, with actionsEnabled true."
1901
+ },
1902
+ "calendarId": {
1903
+ "type": "string",
1904
+ "minLength": 1,
1905
+ "default": "primary",
1906
+ "description": 'Calendar to create the event in. Default "primary".'
1907
+ },
1908
+ "summary": {
1909
+ "type": "string",
1910
+ "minLength": 1,
1911
+ "maxLength": 500,
1912
+ "description": "Event title."
1913
+ },
1914
+ "description": {
1915
+ "type": "string",
1916
+ "maxLength": 5e3,
1917
+ "description": "Event description."
1918
+ },
1919
+ "location": {
1920
+ "type": "string",
1921
+ "maxLength": 500,
1922
+ "description": "Event location."
1923
+ },
1924
+ "startDateTime": {
1925
+ "type": "string",
1926
+ "minLength": 1,
1927
+ "description": 'Start time, ISO 8601, e.g. "2026-07-15T09:00:00-06:00".'
1928
+ },
1929
+ "endDateTime": {
1930
+ "type": "string",
1931
+ "minLength": 1,
1932
+ "description": 'End time, ISO 8601, e.g. "2026-07-15T10:00:00-06:00".'
1933
+ },
1934
+ "timeZone": {
1935
+ "type": "string",
1936
+ "maxLength": 100,
1937
+ "description": 'IANA timezone, e.g. "America/Denver". Applies to both start and end.'
1938
+ }
1939
+ },
1940
+ "required": [
1941
+ "connectionId",
1942
+ "summary",
1943
+ "startDateTime",
1944
+ "endDateTime"
1945
+ ],
1946
+ "additionalProperties": false,
1947
+ "$schema": "http://json-schema.org/draft-07/schema#"
1948
+ },
1949
+ "annotations": {
1950
+ "title": "Create Calendar Event",
1951
+ "readOnlyHint": false,
1952
+ "destructiveHint": false,
1953
+ "idempotentHint": false,
1954
+ "openWorldHint": true
1955
+ }
1956
+ },
1957
+ {
1958
+ "name": "zoom_create_meeting",
1959
+ "category": "connections",
1960
+ "title": "Create Zoom Meeting",
1961
+ "description": "Create a meeting on a connected, action-enabled Zoom connection. Requires a connectionId from list_service_connections with actionsEnabled true; the person must have explicitly turned actions on for that connection.",
1962
+ "inputSchema": {
1963
+ "type": "object",
1964
+ "properties": {
1965
+ "connectionId": {
1966
+ "type": "string",
1967
+ "minLength": 1,
1968
+ "description": "A Zoom connectionId from list_service_connections, with actionsEnabled true."
1969
+ },
1970
+ "topic": {
1971
+ "type": "string",
1972
+ "minLength": 1,
1973
+ "maxLength": 200,
1974
+ "description": "Meeting topic/title."
1975
+ },
1976
+ "startDateTime": {
1977
+ "type": "string",
1978
+ "minLength": 1,
1979
+ "description": 'Start time, ISO 8601, e.g. "2026-07-15T09:00:00-06:00".'
1980
+ },
1981
+ "durationMinutes": {
1982
+ "type": "integer",
1983
+ "minimum": 1,
1984
+ "maximum": 1440,
1985
+ "default": 30,
1986
+ "description": "Meeting duration in minutes. Default 30."
1987
+ },
1988
+ "timezone": {
1989
+ "type": "string",
1990
+ "maxLength": 100,
1991
+ "description": 'IANA timezone, e.g. "America/Denver".'
1992
+ },
1993
+ "agenda": {
1994
+ "type": "string",
1995
+ "maxLength": 2e3,
1996
+ "description": "Meeting description/agenda."
1997
+ }
1998
+ },
1999
+ "required": [
2000
+ "connectionId",
2001
+ "topic",
2002
+ "startDateTime"
2003
+ ],
2004
+ "additionalProperties": false,
2005
+ "$schema": "http://json-schema.org/draft-07/schema#"
2006
+ },
2007
+ "annotations": {
2008
+ "title": "Create Zoom Meeting",
2009
+ "readOnlyHint": false,
2010
+ "destructiveHint": false,
2011
+ "idempotentHint": false,
2012
+ "openWorldHint": true
2013
+ }
2014
+ },
2015
+ {
2016
+ "name": "read_service_connection",
2017
+ "category": "connections",
2018
+ "title": "Read Connected Service",
2019
+ "description": "Call one live, read-only tool on any connected service, including Google Analytics, YouTube, Facebook Pages, LinkedIn, X, Slack, Gmail, Calendar, Drive, Zoom, and Xero. Requires a connectionId and an exact name from that connection's readTools in list_service_connections; an unlisted tool is rejected server-side. For already-digested history, prefer memory-search over vaultName or table-query over tableName.",
2020
+ "inputSchema": {
2021
+ "type": "object",
2022
+ "properties": {
2023
+ "connectionId": {
2024
+ "type": "string",
2025
+ "minLength": 1,
2026
+ "description": "A connectionId from list_service_connections."
2027
+ },
2028
+ "tool": {
2029
+ "type": "string",
2030
+ "minLength": 1,
2031
+ "description": "One of that connection's readTools (from list_service_connections). An unlisted tool name is rejected with the allowed list."
2032
+ },
2033
+ "args": {
2034
+ "type": "object",
2035
+ "additionalProperties": {},
2036
+ "description": "Arguments for the tool, if it needs any (e.g. a channel id, a date filter)."
2037
+ }
2038
+ },
2039
+ "required": [
2040
+ "connectionId",
2041
+ "tool"
2042
+ ],
2043
+ "additionalProperties": false,
2044
+ "$schema": "http://json-schema.org/draft-07/schema#"
2045
+ },
2046
+ "annotations": {
2047
+ "title": "Read Connected Service",
2048
+ "readOnlyHint": true,
2049
+ "destructiveHint": false,
2050
+ "idempotentHint": true,
2051
+ "openWorldHint": true
2052
+ }
2053
+ },
2054
+ {
2055
+ "name": "call_service_connection_action",
2056
+ "category": "connections",
2057
+ "title": "Run Connected Service Action",
2058
+ "description": "Run one explicitly allowlisted write or mutation on a tenant-owned OAuth connection. First call list_service_connections, use a connection with actionsEnabled true, choose one exact actionTools entry, and supply that action's arguments. The server rejects arbitrary action names, inactive or foreign connections, disabled actions, and tools outside the provider allowlist. This may publish, update, send, subscribe, or delete provider data depending on the chosen tool.",
2059
+ "inputSchema": {
2060
+ "type": "object",
2061
+ "properties": {
2062
+ "connectionId": {
2063
+ "type": "string",
2064
+ "minLength": 1,
2065
+ "description": "A connectionId from list_service_connections with actionsEnabled true."
2066
+ },
2067
+ "tool": {
2068
+ "type": "string",
2069
+ "minLength": 1,
2070
+ "description": "One exact tool name from that connection's actionTools. Arbitrary Nango action names are rejected server-side."
2071
+ },
2072
+ "args": {
2073
+ "type": "object",
2074
+ "additionalProperties": {},
2075
+ "description": "Arguments required by the selected action. The provider action validates its own typed input before execution."
2076
+ }
2077
+ },
2078
+ "required": [
2079
+ "connectionId",
2080
+ "tool",
2081
+ "args"
2082
+ ],
2083
+ "additionalProperties": false,
2084
+ "$schema": "http://json-schema.org/draft-07/schema#"
2085
+ },
2086
+ "annotations": {
2087
+ "title": "Run Connected Service Action",
2088
+ "readOnlyHint": false,
2089
+ "destructiveHint": true,
2090
+ "idempotentHint": false,
2091
+ "openWorldHint": true
2092
+ }
2093
+ },
2094
+ {
2095
+ "name": "set_scheduled_action_connections",
2096
+ "category": "connections",
2097
+ "title": "Set Scheduled Action Connections",
2098
+ "description": "Attach exact tenant-owned OAuth connections and exact allowed tools to an existing scheduled action. First create or identify the schedule, call list_service_connections, then grant only the required readTools and\u2014when that account has actionsEnabled true\u2014the required actionTools. The server verifies schedule ownership, connection ownership, provider policy, and the per-account action switch. Pass an empty connections array to remove all external-service access from the schedule.",
2099
+ "inputSchema": {
2100
+ "type": "object",
2101
+ "properties": {
2102
+ "scheduleActionId": {
2103
+ "type": "string",
2104
+ "minLength": 1,
2105
+ "description": "A scheduled action id returned by create-scheduled-action or list-scheduled-actions."
2106
+ },
2107
+ "connections": {
2108
+ "type": "array",
2109
+ "items": {
2110
+ "type": "object",
2111
+ "properties": {
2112
+ "connectionId": {
2113
+ "type": "string",
2114
+ "minLength": 1,
2115
+ "description": "A tenant-scoped connectionId from list_service_connections."
2116
+ },
2117
+ "providerConfigKey": {
2118
+ "type": "string",
2119
+ "minLength": 1,
2120
+ "description": "The matching providerConfigKey returned with that connection."
2121
+ },
2122
+ "allowedTools": {
2123
+ "type": "array",
2124
+ "items": {
2125
+ "type": "string",
2126
+ "minLength": 1
2127
+ },
2128
+ "minItems": 1,
2129
+ "maxItems": 100,
2130
+ "description": "Exact readTools and, only when live actions are enabled, actionTools this schedule may use."
2131
+ }
2132
+ },
2133
+ "required": [
2134
+ "connectionId",
2135
+ "providerConfigKey",
2136
+ "allowedTools"
2137
+ ],
2138
+ "additionalProperties": false
2139
+ },
2140
+ "maxItems": 20,
2141
+ "description": "Exact connection and tool grants for this schedule. Pass an empty array to remove every external-service grant."
2142
+ }
2143
+ },
2144
+ "required": [
2145
+ "scheduleActionId",
2146
+ "connections"
2147
+ ],
2148
+ "additionalProperties": false,
2149
+ "$schema": "http://json-schema.org/draft-07/schema#"
2150
+ },
2151
+ "annotations": {
2152
+ "title": "Set Scheduled Action Connections",
2153
+ "readOnlyHint": false,
2154
+ "destructiveHint": false,
2155
+ "idempotentHint": true,
2156
+ "openWorldHint": false
2157
+ }
2158
+ },
1782
2159
  {
1783
2160
  "name": "capture_serp_snapshot",
1784
2161
  "category": "serpIntelligence",
@@ -6537,7 +6914,7 @@ Vault deposit: ${page.memory.deposited ? `saved to ${page.memory.vault}` : "fail
6537
6914
  });
6538
6915
  });
6539
6916
  });
6540
- const memory = program.command("memory").description("Ergonomic memory shortcuts; use tools list/call for the complete 145-tool surface");
6917
+ const memory = program.command("memory").description("Ergonomic memory shortcuts; use tools list/call for the complete 153-tool surface");
6541
6918
  memory.command("search <query>").description("Semantic search across your mcp-memory vaults").option("--json", "print raw JSON").action(async (query, opts, cmd) => {
6542
6919
  await run(async () => {
6543
6920
  const result = await client(cmd).memoryTools.memory.search({ query });
@@ -6560,7 +6937,7 @@ Vault deposit: ${page.memory.deposited ? `saved to ${page.memory.vault}` : "fail
6560
6937
  });
6561
6938
  });
6562
6939
  const tools = program.command("tools").description(`Discover, inspect, and call every unified MCP tool (${MCP_TOOL_COUNT} total)`);
6563
- tools.command("list").description("List the complete local 145-tool catalog").option("--category <name>", "filter by SDK category").option("--json", "print the complete catalog as JSON").action((opts) => {
6940
+ tools.command("list").description("List the complete local 153-tool catalog").option("--category <name>", "filter by SDK category").option("--json", "print the complete catalog as JSON").action((opts) => {
6564
6941
  const catalog = opts.category ? MCP_TOOL_CATALOG.filter((tool) => tool.category === opts.category) : MCP_TOOL_CATALOG;
6565
6942
  if (opts.json) {
6566
6943
  console.log(JSON.stringify(catalog, null, 2));
@@ -6575,7 +6952,7 @@ ${catalog.length}/${MCP_TOOL_COUNT} tools`);
6575
6952
  if (!tool) throw new Error(`Unknown tool "${name}". Run "mcpscraper tools list" for all ${MCP_TOOL_COUNT} names.`);
6576
6953
  console.log(JSON.stringify(tool, null, 2));
6577
6954
  });
6578
- tools.command("call <name>").description("Call any of the 145 MCP tools by exact wire name").option("--args <json>", "tool arguments as a JSON object", "{}").option("--yes", "confirm a tool marked destructive").option("--json", "print raw JSON").action(async (name, opts, cmd) => {
6955
+ tools.command("call <name>").description("Call any of the 153 MCP tools by exact wire name").option("--args <json>", "tool arguments as a JSON object", "{}").option("--yes", "confirm a tool marked destructive").option("--json", "print raw JSON").action(async (name, opts, cmd) => {
6579
6956
  await run(async () => {
6580
6957
  const tool = MCP_TOOL_CATALOG.find((entry) => entry.name === name);
6581
6958
  if (!tool) throw new Error(`Unknown tool "${name}". Run "mcpscraper tools list" for all ${MCP_TOOL_COUNT} names.`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcpscraper-cli",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Command-line interface for mcpscraper.dev and memory.mcpscraper.dev",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -17,7 +17,7 @@
17
17
  "test": "tsx --test test/*.test.ts"
18
18
  },
19
19
  "dependencies": {
20
- "mcpscraper-sdk": "^0.4.0",
20
+ "mcpscraper-sdk": "^0.6.0",
21
21
  "commander": "^12.0.0"
22
22
  },
23
23
  "devDependencies": {