mcp-server-motherduck 0.4.0__tar.gz → 0.4.1__tar.gz

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.

Potentially problematic release.


This version of mcp-server-motherduck might be problematic. Click here for more details.

@@ -0,0 +1,8 @@
1
+ # Default ignored files
2
+ /shelf/
3
+ /workspace.xml
4
+ # Editor-based HTTP Client requests
5
+ /httpRequests/
6
+ # Datasource local storage ignored files
7
+ /dataSources/
8
+ /dataSources.local.xml
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="JAVA_MODULE" version="4">
3
+ <component name="NewModuleRootManager" inherit-compiler-output="true">
4
+ <exclude-output />
5
+ <content url="file://$MODULE_DIR$" />
6
+ <orderEntry type="inheritedJdk" />
7
+ <orderEntry type="sourceFolder" forTests="false" />
8
+ </component>
9
+ </module>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectRootManager" version="2" languageLevel="JDK_20" project-jdk-name="Python 3.11" project-jdk-type="Python SDK">
4
+ <output url="file://$PROJECT_DIR$/out" />
5
+ </component>
6
+ </project>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/mcp-server-motherduck.iml" filepath="$PROJECT_DIR$/.idea/mcp-server-motherduck.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="" vcs="Git" />
5
+ </component>
6
+ </project>
@@ -0,0 +1,65 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="AutoImportSettings">
4
+ <option name="autoReloadType" value="SELECTIVE" />
5
+ </component>
6
+ <component name="ChangeListManager">
7
+ <list default="true" id="5f5ca33d-24b5-4ccd-b2b3-3ff0b492aff6" name="Changes" comment="">
8
+ <change beforePath="$PROJECT_DIR$/pyproject.toml" beforeDir="false" afterPath="$PROJECT_DIR$/pyproject.toml" afterDir="false" />
9
+ <change beforePath="$PROJECT_DIR$/src/mcp_server_motherduck/server.py" beforeDir="false" afterPath="$PROJECT_DIR$/src/mcp_server_motherduck/server.py" afterDir="false" />
10
+ </list>
11
+ <option name="SHOW_DIALOG" value="false" />
12
+ <option name="HIGHLIGHT_CONFLICTS" value="true" />
13
+ <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
14
+ <option name="LAST_RESOLUTION" value="IGNORE" />
15
+ </component>
16
+ <component name="Git.Settings">
17
+ <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
18
+ </component>
19
+ <component name="MarkdownSettingsMigration">
20
+ <option name="stateVersion" value="1" />
21
+ </component>
22
+ <component name="ProjectColorInfo">{
23
+ &quot;associatedIndex&quot;: 1
24
+ }</component>
25
+ <component name="ProjectId" id="2u5xTlafNwhlw0HAUWKYPjo4ax8" />
26
+ <component name="ProjectViewState">
27
+ <option name="hideEmptyMiddlePackages" value="true" />
28
+ <option name="showLibraryContents" value="true" />
29
+ </component>
30
+ <component name="PropertiesComponent">{
31
+ &quot;keyToString&quot;: {
32
+ &quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;,
33
+ &quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
34
+ &quot;WebServerToolWindowFactoryState&quot;: &quot;false&quot;,
35
+ &quot;git-widget-placeholder&quot;: &quot;main&quot;,
36
+ &quot;last_opened_file_path&quot;: &quot;/Users/doehmen/Documents/Research/docs/ai-playground/mcp-server/github_md/mcp-server-motherduck&quot;,
37
+ &quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
38
+ &quot;node.js.detected.package.tslint&quot;: &quot;true&quot;,
39
+ &quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
40
+ &quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;,
41
+ &quot;nodejs_package_manager_path&quot;: &quot;npm&quot;,
42
+ &quot;project.structure.last.edited&quot;: &quot;Project&quot;,
43
+ &quot;project.structure.proportion&quot;: &quot;0.0&quot;,
44
+ &quot;project.structure.side.proportion&quot;: &quot;0.0&quot;,
45
+ &quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
46
+ }
47
+ }</component>
48
+ <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
49
+ <component name="TaskManager">
50
+ <task active="true" id="Default" summary="Default task">
51
+ <changelist id="5f5ca33d-24b5-4ccd-b2b3-3ff0b492aff6" name="Changes" comment="" />
52
+ <created>1741552248367</created>
53
+ <option name="number" value="Default" />
54
+ <option name="presentableId" value="Default" />
55
+ <updated>1741552248367</updated>
56
+ <workItem from="1741552249680" duration="3949000" />
57
+ <workItem from="1741799556448" duration="2256000" />
58
+ <workItem from="1742223629669" duration="5595000" />
59
+ </task>
60
+ <servers />
61
+ </component>
62
+ <component name="TypeScriptGeneratedFilesManager">
63
+ <option name="version" value="3" />
64
+ </component>
65
+ </project>
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-server-motherduck
3
- Version: 0.4.0
3
+ Version: 0.4.1
4
4
  Summary: A MCP server for MotherDuck and local DuckDB
5
5
  Author-email: tdoehmen <till@motherduck.com>
6
6
  License-File: LICENSE
7
7
  Requires-Python: >=3.10
8
- Requires-Dist: duckdb>=1.2.1
8
+ Requires-Dist: duckdb==1.2.1
9
9
  Requires-Dist: mcp>=1.3.0
10
10
  Requires-Dist: pandas>=2.0.0
11
11
  Requires-Dist: tabulate>=0.9.0
@@ -47,7 +47,7 @@ All interactions with both DuckDB and MotherDuck are done through writing SQL qu
47
47
 
48
48
  - A MotherDuck account (sign up at [motherduck.com](https://motherduck.com))
49
49
  - A MotherDuck access token
50
- - `uvx` installed, you can install it using `pip install uvx` or `brew install uvx`
50
+ - `uv` installed, you can install it using `pip install uv` or `brew install uv`
51
51
 
52
52
  If you plan to use MotherDuck MCP with Claude Desktop, you will also need Claude Desktop installed.
53
53
 
@@ -57,6 +57,69 @@ If you plan to use MotherDuck MCP with Claude Desktop, you will also need Claude
57
57
  2. Generate an access token via the [MotherDuck UI](https://app.motherduck.com/settings/tokens?auth_flow=signup)
58
58
  3. Store the token securely for use in the configuration
59
59
 
60
+ ### Usage with VS Code
61
+
62
+ [![Install with UV in VS Code](https://img.shields.io/badge/VS_Code-UV-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=mcp-server-motherduck&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22mcp-server-motherduck%22%2C%22--db-path%22%2C%22md%3A%22%2C%22--motherduck-token%22%2C%22%24%7Binput%3Amotherduck_token%7D%22%5D%7D&inputs=%5B%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22motherduck_token%22%2C%22description%22%3A%22MotherDuck+Token%22%2C%22password%22%3Atrue%7D%5D) [![Install with UV in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-UV-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=mcp-server-motherduck&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22mcp-server-motherduck%22%2C%22--db-path%22%2C%22md%3A%22%2C%22--motherduck-token%22%2C%22%24%7Binput%3Amotherduck_token%7D%22%5D%7D&inputs=%5B%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22motherduck_token%22%2C%22description%22%3A%22MotherDuck+Token%22%2C%22password%22%3Atrue%7D%5D&quality=insiders)
63
+ 1. For the quickest installation, click one of the "Install with UV" buttons at the top of this README.
64
+
65
+ ### Manual Installation
66
+
67
+ Add the following JSON block to your User Settings (JSON) file in VS Code. You can do this by pressing `Ctrl + Shift + P` and typing `Preferences: Open User Settings (JSON)`.
68
+
69
+ ```json
70
+ {
71
+ "mcp": {
72
+ "inputs": [
73
+ {
74
+ "type": "promptString",
75
+ "id": "motherduck_token",
76
+ "description": "MotherDuck Token",
77
+ "password": true
78
+ }
79
+ ],
80
+ "servers": {
81
+ "motherduck": {
82
+ "command": "uvx",
83
+ "args": [
84
+ "mcp-server-motherduck",
85
+ "--db-path",
86
+ "md:",
87
+ "--motherduck-token",
88
+ "${input:motherduck_token}"
89
+ ]
90
+ }
91
+ }
92
+ }
93
+ }
94
+ ```
95
+
96
+ Optionally, you can add it to a file called `.vscode/mcp.json` in your workspace. This will allow you to share the configuration with others.
97
+
98
+ ```json
99
+ {
100
+ "inputs": [
101
+ {
102
+ "type": "promptString",
103
+ "id": "motherduck_token",
104
+ "description": "MotherDuck Token",
105
+ "password": true
106
+ }
107
+ ],
108
+ "servers": {
109
+ "motherduck": {
110
+ "command": "uvx",
111
+ "args": [
112
+ "mcp-server-motherduck",
113
+ "--db-path",
114
+ "md:",
115
+ "--motherduck-token",
116
+ "${input:motherduck_token}"
117
+ ]
118
+ }
119
+ }
120
+ }
121
+ ```
122
+
60
123
  ### Usage with Claude Desktop
61
124
 
62
125
  1. Install Claude Desktop from [claude.ai/download](https://claude.ai/download) if you haven't already
@@ -67,16 +130,18 @@ If you plan to use MotherDuck MCP with Claude Desktop, you will also need Claude
67
130
  - Add the following configuration to your `claude_desktop_config.json`:
68
131
 
69
132
  ```json
70
- "mcpServers": {
71
- "mcp-server-motherduck": {
72
- "command": "uvx",
73
- "args": [
74
- "mcp-server-motherduck",
75
- "--db-path",
76
- "md:",
77
- "--motherduck-token",
78
- "<YOUR_MOTHERDUCK_TOKEN_HERE>",
79
- ],
133
+ {
134
+ "mcpServers": {
135
+ "mcp-server-motherduck": {
136
+ "command": "uvx",
137
+ "args": [
138
+ "mcp-server-motherduck",
139
+ "--db-path",
140
+ "md:",
141
+ "--motherduck-token",
142
+ "<YOUR_MOTHERDUCK_TOKEN_HERE>"
143
+ ],
144
+ }
80
145
  }
81
146
  }
82
147
  ```
@@ -143,6 +208,7 @@ And you can point your clients such as Claude Desktop, Cursor to this endpoint.
143
208
  - If you encounter connection issues, verify your MotherDuck token is correct
144
209
  - For local file access problems, ensure the `--home-dir` parameter is set correctly
145
210
  - Check that the `uvx` command is available in your PATH
211
+ - If you encounter [`spawn uvx ENOENT`](https://github.com/motherduckdb/mcp-server-motherduck/issues/6) errors, try specifying the full path to `uvx` (output of `which uvx`)
146
212
  - In version previous for v0.4.0 we used environment variables, now we use parameters
147
213
 
148
214
  ## License
@@ -34,7 +34,7 @@ All interactions with both DuckDB and MotherDuck are done through writing SQL qu
34
34
 
35
35
  - A MotherDuck account (sign up at [motherduck.com](https://motherduck.com))
36
36
  - A MotherDuck access token
37
- - `uvx` installed, you can install it using `pip install uvx` or `brew install uvx`
37
+ - `uv` installed, you can install it using `pip install uv` or `brew install uv`
38
38
 
39
39
  If you plan to use MotherDuck MCP with Claude Desktop, you will also need Claude Desktop installed.
40
40
 
@@ -44,6 +44,69 @@ If you plan to use MotherDuck MCP with Claude Desktop, you will also need Claude
44
44
  2. Generate an access token via the [MotherDuck UI](https://app.motherduck.com/settings/tokens?auth_flow=signup)
45
45
  3. Store the token securely for use in the configuration
46
46
 
47
+ ### Usage with VS Code
48
+
49
+ [![Install with UV in VS Code](https://img.shields.io/badge/VS_Code-UV-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=mcp-server-motherduck&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22mcp-server-motherduck%22%2C%22--db-path%22%2C%22md%3A%22%2C%22--motherduck-token%22%2C%22%24%7Binput%3Amotherduck_token%7D%22%5D%7D&inputs=%5B%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22motherduck_token%22%2C%22description%22%3A%22MotherDuck+Token%22%2C%22password%22%3Atrue%7D%5D) [![Install with UV in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-UV-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=mcp-server-motherduck&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22mcp-server-motherduck%22%2C%22--db-path%22%2C%22md%3A%22%2C%22--motherduck-token%22%2C%22%24%7Binput%3Amotherduck_token%7D%22%5D%7D&inputs=%5B%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22motherduck_token%22%2C%22description%22%3A%22MotherDuck+Token%22%2C%22password%22%3Atrue%7D%5D&quality=insiders)
50
+ 1. For the quickest installation, click one of the "Install with UV" buttons at the top of this README.
51
+
52
+ ### Manual Installation
53
+
54
+ Add the following JSON block to your User Settings (JSON) file in VS Code. You can do this by pressing `Ctrl + Shift + P` and typing `Preferences: Open User Settings (JSON)`.
55
+
56
+ ```json
57
+ {
58
+ "mcp": {
59
+ "inputs": [
60
+ {
61
+ "type": "promptString",
62
+ "id": "motherduck_token",
63
+ "description": "MotherDuck Token",
64
+ "password": true
65
+ }
66
+ ],
67
+ "servers": {
68
+ "motherduck": {
69
+ "command": "uvx",
70
+ "args": [
71
+ "mcp-server-motherduck",
72
+ "--db-path",
73
+ "md:",
74
+ "--motherduck-token",
75
+ "${input:motherduck_token}"
76
+ ]
77
+ }
78
+ }
79
+ }
80
+ }
81
+ ```
82
+
83
+ Optionally, you can add it to a file called `.vscode/mcp.json` in your workspace. This will allow you to share the configuration with others.
84
+
85
+ ```json
86
+ {
87
+ "inputs": [
88
+ {
89
+ "type": "promptString",
90
+ "id": "motherduck_token",
91
+ "description": "MotherDuck Token",
92
+ "password": true
93
+ }
94
+ ],
95
+ "servers": {
96
+ "motherduck": {
97
+ "command": "uvx",
98
+ "args": [
99
+ "mcp-server-motherduck",
100
+ "--db-path",
101
+ "md:",
102
+ "--motherduck-token",
103
+ "${input:motherduck_token}"
104
+ ]
105
+ }
106
+ }
107
+ }
108
+ ```
109
+
47
110
  ### Usage with Claude Desktop
48
111
 
49
112
  1. Install Claude Desktop from [claude.ai/download](https://claude.ai/download) if you haven't already
@@ -54,16 +117,18 @@ If you plan to use MotherDuck MCP with Claude Desktop, you will also need Claude
54
117
  - Add the following configuration to your `claude_desktop_config.json`:
55
118
 
56
119
  ```json
57
- "mcpServers": {
58
- "mcp-server-motherduck": {
59
- "command": "uvx",
60
- "args": [
61
- "mcp-server-motherduck",
62
- "--db-path",
63
- "md:",
64
- "--motherduck-token",
65
- "<YOUR_MOTHERDUCK_TOKEN_HERE>",
66
- ],
120
+ {
121
+ "mcpServers": {
122
+ "mcp-server-motherduck": {
123
+ "command": "uvx",
124
+ "args": [
125
+ "mcp-server-motherduck",
126
+ "--db-path",
127
+ "md:",
128
+ "--motherduck-token",
129
+ "<YOUR_MOTHERDUCK_TOKEN_HERE>"
130
+ ],
131
+ }
67
132
  }
68
133
  }
69
134
  ```
@@ -130,6 +195,7 @@ And you can point your clients such as Claude Desktop, Cursor to this endpoint.
130
195
  - If you encounter connection issues, verify your MotherDuck token is correct
131
196
  - For local file access problems, ensure the `--home-dir` parameter is set correctly
132
197
  - Check that the `uvx` command is available in your PATH
198
+ - If you encounter [`spawn uvx ENOENT`](https://github.com/motherduckdb/mcp-server-motherduck/issues/6) errors, try specifying the full path to `uvx` (output of `which uvx`)
133
199
  - In version previous for v0.4.0 we used environment variables, now we use parameters
134
200
 
135
201
  ## License
@@ -1,12 +1,12 @@
1
1
  [project]
2
2
  name = "mcp-server-motherduck"
3
- version = "0.4.0"
3
+ version = "0.4.1"
4
4
  description = "A MCP server for MotherDuck and local DuckDB"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
7
7
  dependencies = [
8
8
  "mcp>=1.3.0",
9
- "duckdb>=1.2.1",
9
+ "duckdb==1.2.1",
10
10
  "pandas>=2.0.0",
11
11
  "tabulate>=0.9.0",
12
12
  ]
@@ -12,7 +12,7 @@ from mcp.server.models import InitializationOptions
12
12
  from .prompt import PROMPT_TEMPLATE
13
13
 
14
14
 
15
- SERVER_VERSION = "0.4.0"
15
+ SERVER_VERSION = "0.4.1"
16
16
 
17
17
  logger = logging.getLogger("mcp_server_motherduck")
18
18
 
@@ -44,7 +44,7 @@ name = "click"
44
44
  version = "8.1.8"
45
45
  source = { registry = "https://pypi.org/simple" }
46
46
  dependencies = [
47
- { name = "colorama", marker = "sys_platform == 'win32'" },
47
+ { name = "colorama", marker = "platform_system == 'Windows'" },
48
48
  ]
49
49
  sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a", size = 226593 }
50
50
  wheels = [
@@ -185,7 +185,7 @@ wheels = [
185
185
 
186
186
  [[package]]
187
187
  name = "mcp-server-motherduck"
188
- version = "0.3.4"
188
+ version = "0.4.1"
189
189
  source = { editable = "." }
190
190
  dependencies = [
191
191
  { name = "duckdb" },
@@ -196,7 +196,7 @@ dependencies = [
196
196
 
197
197
  [package.metadata]
198
198
  requires-dist = [
199
- { name = "duckdb", specifier = ">=1.2.1" },
199
+ { name = "duckdb", specifier = "==1.2.1" },
200
200
  { name = "mcp", specifier = ">=1.3.0" },
201
201
  { name = "pandas", specifier = ">=2.0.0" },
202
202
  { name = "tabulate", specifier = ">=0.9.0" },