@thinkrun/mcp 0.3.5

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.
Files changed (50) hide show
  1. package/README.md +356 -0
  2. package/dist/bin/thinkrun-mcp.d.ts +3 -0
  3. package/dist/bin/thinkrun-mcp.d.ts.map +1 -0
  4. package/dist/bin/thinkrun-mcp.js +305 -0
  5. package/dist/bin/thinkrun-mcp.js.map +1 -0
  6. package/dist/src/client.d.ts +422 -0
  7. package/dist/src/client.d.ts.map +1 -0
  8. package/dist/src/client.js +2 -0
  9. package/dist/src/client.js.map +1 -0
  10. package/dist/src/cloud-client.d.ts +69 -0
  11. package/dist/src/cloud-client.d.ts.map +1 -0
  12. package/dist/src/cloud-client.js +291 -0
  13. package/dist/src/cloud-client.js.map +1 -0
  14. package/dist/src/extension-proxy-client.d.ts +139 -0
  15. package/dist/src/extension-proxy-client.d.ts.map +1 -0
  16. package/dist/src/extension-proxy-client.js +451 -0
  17. package/dist/src/extension-proxy-client.js.map +1 -0
  18. package/dist/src/index.d.ts +11 -0
  19. package/dist/src/index.d.ts.map +1 -0
  20. package/dist/src/index.js +6 -0
  21. package/dist/src/index.js.map +1 -0
  22. package/dist/src/local-client.d.ts +120 -0
  23. package/dist/src/local-client.d.ts.map +1 -0
  24. package/dist/src/local-client.js +947 -0
  25. package/dist/src/local-client.js.map +1 -0
  26. package/dist/src/local-locks.d.ts +26 -0
  27. package/dist/src/local-locks.d.ts.map +1 -0
  28. package/dist/src/local-locks.js +315 -0
  29. package/dist/src/local-locks.js.map +1 -0
  30. package/dist/src/package-version.d.ts +2 -0
  31. package/dist/src/package-version.d.ts.map +1 -0
  32. package/dist/src/package-version.js +13 -0
  33. package/dist/src/package-version.js.map +1 -0
  34. package/dist/src/page-cache-http.d.ts +15 -0
  35. package/dist/src/page-cache-http.d.ts.map +1 -0
  36. package/dist/src/page-cache-http.js +44 -0
  37. package/dist/src/page-cache-http.js.map +1 -0
  38. package/dist/src/server.d.ts +135 -0
  39. package/dist/src/server.d.ts.map +1 -0
  40. package/dist/src/server.js +1454 -0
  41. package/dist/src/server.js.map +1 -0
  42. package/dist/src/test-utils/lock-fixtures.d.ts +18 -0
  43. package/dist/src/test-utils/lock-fixtures.d.ts.map +1 -0
  44. package/dist/src/test-utils/lock-fixtures.js +33 -0
  45. package/dist/src/test-utils/lock-fixtures.js.map +1 -0
  46. package/dist/src/unwrap-evaluate-payload.d.ts +8 -0
  47. package/dist/src/unwrap-evaluate-payload.d.ts.map +1 -0
  48. package/dist/src/unwrap-evaluate-payload.js +19 -0
  49. package/dist/src/unwrap-evaluate-payload.js.map +1 -0
  50. package/package.json +65 -0
@@ -0,0 +1,135 @@
1
+ /**
2
+ * ThinkRun MCP Server — exposes browser automation as MCP tools.
3
+ *
4
+ * Security: Selectors are validated via cssSelector() zod refinement to reject
5
+ * script injection attempts. The server-side also applies JSON.stringify()
6
+ * escaping when embedding selectors in error messages (defense-in-depth).
7
+ */
8
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
9
+ import type { ThinkRunClient } from './client.js';
10
+ /** Mutable ref for the current default session (used by session_use tool). */
11
+ export interface DefaultSessionRef {
12
+ current: string | undefined;
13
+ }
14
+ /** Mutable ref for the current client (used by set_mode tool). */
15
+ export interface ClientRef {
16
+ current: ThinkRunClient;
17
+ }
18
+ /** Result from a set_mode handler — includes the new client and the resolved mode. */
19
+ export interface SetModeResult {
20
+ client: ThinkRunClient;
21
+ /** The actual mode resolved (e.g. 'auto' resolves to 'local' or 'cloud'). */
22
+ resolvedMode: 'local' | 'cloud';
23
+ }
24
+ /**
25
+ * Callback invoked when the set_mode tool is called.
26
+ * Should create and return a new client for the requested mode.
27
+ * Throw an error to reject the mode switch (e.g. missing API key).
28
+ */
29
+ export type SetModeHandler = (mode: 'local' | 'cloud' | 'auto') => Promise<SetModeResult>;
30
+ export interface CreateServerOptions {
31
+ /**
32
+ * Default session ID to use when the AI agent doesn't provide one.
33
+ * In extension mode, the server-side spawner knows the session ID —
34
+ * this removes the need for the AI to call session_create first.
35
+ */
36
+ defaultSessionId?: string;
37
+ /**
38
+ * When provided, the server uses this ref for the default session and
39
+ * session_use can update it. Use the same ref when creating the server
40
+ * so that session_use updates the default for subsequent tool calls.
41
+ */
42
+ defaultSessionRef?: DefaultSessionRef;
43
+ /**
44
+ * When provided, enables the set_mode tool for runtime client switching.
45
+ * The clientRef.current is swapped by the set_mode handler.
46
+ */
47
+ clientRef?: ClientRef;
48
+ /**
49
+ * Called by set_mode to create a new client for the requested mode.
50
+ * Required when clientRef is provided.
51
+ */
52
+ onSetMode?: SetModeHandler;
53
+ }
54
+ /** Tool result shape returned by MCP tool handlers. */
55
+ export type ToolResult = {
56
+ content: Array<{
57
+ type: 'text';
58
+ text: string;
59
+ }>;
60
+ isError: boolean;
61
+ };
62
+ export type LocalSessionLifecycleOperation = 'tab_attach' | 'tab_switch' | 'tab_focus' | 'window_new' | 'session_release';
63
+ export interface ApplyLifecycleDefaultSessionArgs {
64
+ currentDefaultSessionId?: string;
65
+ operation: LocalSessionLifecycleOperation;
66
+ resultSessionId?: string;
67
+ releasedSessionId?: string;
68
+ }
69
+ export declare const MAX_GET_HTML_CHARS = 200000;
70
+ export declare const MAX_SLEEP_MS = 30000;
71
+ /**
72
+ * Apply the PRD's local-session mutation policy without requiring tool registration.
73
+ * This is exported so tests can lock the behavior down before the MCP tools are added.
74
+ */
75
+ export declare function applyLifecycleDefaultSession(args: ApplyLifecycleDefaultSessionArgs): string | undefined;
76
+ /**
77
+ * clear_logs tool handler logic. Exported for unit tests so we can assert
78
+ * on content/isError without going through the MCP transport.
79
+ * Catches rejections from client.clearLogs (e.g. network or unexpected API errors)
80
+ * and returns a structured ToolResult so the MCP tool always responds with content/isError.
81
+ */
82
+ export declare function handleClearLogs(client: ThinkRunClient, args: {
83
+ sessionId?: string;
84
+ }, sidResolver: (args: {
85
+ sessionId?: string;
86
+ }) => string): Promise<ToolResult>;
87
+ export declare function handleTabAttach(client: ThinkRunClient, args: {
88
+ tabId: number;
89
+ }, defaultSessionRef: DefaultSessionRef): Promise<ToolResult>;
90
+ export declare function handleTabSwitch(client: ThinkRunClient, args: {
91
+ tabId: number;
92
+ }, defaultSessionRef: DefaultSessionRef): Promise<ToolResult>;
93
+ export declare function handleWindowNew(client: ThinkRunClient, args: {
94
+ url?: string;
95
+ }, defaultSessionRef: DefaultSessionRef): Promise<ToolResult>;
96
+ export declare function handleTabFocus(client: ThinkRunClient, args: {
97
+ sessionId?: string;
98
+ }, sidResolver: (args: {
99
+ sessionId?: string;
100
+ }) => string, defaultSessionRef: DefaultSessionRef): Promise<ToolResult>;
101
+ export declare function handleSessionRelease(client: ThinkRunClient, args: {
102
+ sessionId?: string;
103
+ }, defaultSessionRef: DefaultSessionRef): Promise<ToolResult>;
104
+ export declare function handleLocalActionRun(client: ThinkRunClient, args: {
105
+ instruction: string;
106
+ maxIterations?: number;
107
+ }): Promise<ToolResult>;
108
+ export declare function handleLocalActionStatus(client: ThinkRunClient, args: {
109
+ actionId: string;
110
+ }): Promise<ToolResult>;
111
+ export declare function handleLocalActionCancel(client: ThinkRunClient, args: {
112
+ actionId: string;
113
+ }): Promise<ToolResult>;
114
+ export declare function handleLocalDiagnostics(client: ThinkRunClient): Promise<ToolResult>;
115
+ export declare function handleLocalResetConnection(client: ThinkRunClient): Promise<ToolResult>;
116
+ export declare function handleGetUrl(client: ThinkRunClient, args: {
117
+ sessionId?: string;
118
+ }, sidResolver: (args: {
119
+ sessionId?: string;
120
+ }) => string): Promise<ToolResult>;
121
+ export declare function handleGetTitle(client: ThinkRunClient, args: {
122
+ sessionId?: string;
123
+ }, sidResolver: (args: {
124
+ sessionId?: string;
125
+ }) => string): Promise<ToolResult>;
126
+ export declare function handleGetHtml(client: ThinkRunClient, args: {
127
+ sessionId?: string;
128
+ }, sidResolver: (args: {
129
+ sessionId?: string;
130
+ }) => string): Promise<ToolResult>;
131
+ export declare function handleSleep(args: {
132
+ durationMs: number;
133
+ }): Promise<ToolResult>;
134
+ export declare function createServer(client: ThinkRunClient, options?: CreateServerOptions): McpServer;
135
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}