fiftyone-mcp-server 0.1.0__tar.gz → 0.1.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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fiftyone-mcp-server
3
- Version: 0.1.0
3
+ Version: 0.1.1
4
4
  Summary: MCP server exposing FiftyOne dataset analysis tools
5
5
  License: MIT
6
6
  Keywords: mcp,fiftyone,computer-vision,ai,datasets,model-context-protocol
@@ -17,8 +17,8 @@ Classifier: Programming Language :: Python :: 3.10
17
17
  Classifier: Programming Language :: Python :: 3.11
18
18
  Classifier: Programming Language :: Python :: 3.12
19
19
  Classifier: Programming Language :: Python :: 3.13
20
+ Classifier: Programming Language :: Python :: 3.9
20
21
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
21
- Classifier: Topic :: Scientific/Engineering :: Image Recognition
22
22
  Requires-Dist: fiftyone (>=1.0,<2.0)
23
23
  Requires-Dist: mcp (>=0.9.0,<0.10.0)
24
24
  Requires-Dist: torch (>=2.9.1,<3.0.0)
@@ -31,6 +31,8 @@ Description-Content-Type: text/markdown
31
31
 
32
32
  # FiftyOne MCP Server
33
33
 
34
+ <!-- mcp-name: io.github.AdonaiVera/fiftyone-mcp-server -->
35
+
34
36
  <div align="center">
35
37
  <p align="center">
36
38
 
@@ -42,6 +44,9 @@ Description-Content-Type: text/markdown
42
44
 
43
45
  > Control FiftyOne datasets through AI assistants using the Model Context Protocol
44
46
 
47
+ [![PyPI](https://img.shields.io/pypi/v/fiftyone-mcp-server.svg)](https://pypi.org/project/fiftyone-mcp-server/)
48
+ [![Python](https://img.shields.io/pypi/pyversions/fiftyone-mcp-server.svg)](https://pypi.org/project/fiftyone-mcp-server/)
49
+
45
50
  </p>
46
51
  </div>
47
52
 
@@ -53,59 +58,111 @@ Enable ChatGPT and Claude to explore datasets, execute operators, and build comp
53
58
 
54
59
  - **Dataset Management (3 tools)** - List, load, and summarize datasets
55
60
  - **Operator System (5 tools)** - Execute any FiftyOne operator dynamically
56
- - Context management (dataset/view/selection)
57
- - Operator discovery and schema resolution
58
- - Dynamic execution interface
59
61
  - **Plugin Management (5 tools)** - Discover and install FiftyOne plugins
60
- - List available plugins and their operators
61
- - Install plugins from GitHub on demand
62
- - Enable/disable plugins dynamically
63
62
  - **Session Management (3 tools)** - Control FiftyOne App for delegated execution
64
- - Launch/close FiftyOne App server
65
- - Required for background operators (brain, evaluation, etc.)
66
- - Session info and status monitoring
67
63
  - **Natural Language Workflows** - Multi-step operations through conversation
68
64
  - **ChatGPT & Claude Compatible** - Works with desktop apps
69
65
 
70
- ## Installation
66
+ ## Quick Start
67
+
68
+ ### Option 1: pip (Simplest)
71
69
 
72
70
  ```bash
73
- git clone https://github.com/AdonaiVera/fiftyone-mcp-server.git
74
- cd fiftyone-mcp-server
75
- poetry install
71
+ pip install fiftyone-mcp-server
76
72
  ```
77
73
 
78
- **Requirements:** Python 3.10-3.13, Poetry, FiftyOne
79
-
80
- ## Configuration
74
+ Then add to your AI tool config and restart:
81
75
 
82
- Add to MCP config:
76
+ <details>
77
+ <summary><b>Claude Desktop</b></summary>
83
78
 
84
- - ChatGPT: `~/Library/Application Support/ChatGPT/config.json`
85
- - Claude: `~/Library/Application Support/Claude/claude_desktop_config.json`
79
+ Edit `~/Library/Application Support/Claude/claude_desktop_config.json`:
86
80
 
87
81
  ```json
88
82
  {
89
83
  "mcpServers": {
90
84
  "fiftyone": {
91
- "command": "poetry",
92
- "args": ["run", "fiftyone-mcp"],
93
- "cwd": "/absolute/path/to/fiftyone-mcp-server"
85
+ "command": "fiftyone-mcp"
94
86
  }
95
87
  }
96
88
  }
97
89
  ```
90
+ </details>
98
91
 
99
- Restart your AI assistant.
92
+ <details>
93
+ <summary><b>Claude Code</b></summary>
100
94
 
101
- ## Usage
95
+ ```bash
96
+ claude mcp add fiftyone -- fiftyone-mcp
97
+ ```
98
+ </details>
99
+
100
+ <details>
101
+ <summary><b>Cursor</b></summary>
102
+
103
+ Add to Cursor MCP settings:
104
+
105
+ ```json
106
+ {
107
+ "fiftyone": {
108
+ "command": "fiftyone-mcp"
109
+ }
110
+ }
111
+ ```
112
+ </details>
113
+
114
+ <details>
115
+ <summary><b>VSCode</b></summary>
102
116
 
117
+ Add to `.vscode/mcp.json`:
118
+
119
+ ```json
120
+ {
121
+ "servers": {
122
+ "fiftyone": {
123
+ "command": "fiftyone-mcp"
124
+ }
125
+ }
126
+ }
103
127
  ```
104
- # Run
105
- poetry run fiftyone-mcp
128
+ </details>
129
+
130
+ <details>
131
+ <summary><b>ChatGPT Desktop</b></summary>
132
+
133
+ Edit `~/Library/Application Support/ChatGPT/config.json`:
134
+
135
+ ```json
136
+ {
137
+ "mcpServers": {
138
+ "fiftyone": {
139
+ "command": "fiftyone-mcp"
140
+ }
141
+ }
142
+ }
106
143
  ```
144
+ </details>
145
+
146
+ ### Option 2: uvx (No Install Needed)
107
147
 
108
- And then you can query directly the agent:
148
+ If you have [uv](https://github.com/astral-sh/uv) installed:
149
+
150
+ ```json
151
+ {
152
+ "mcpServers": {
153
+ "fiftyone": {
154
+ "command": "uvx",
155
+ "args": ["fiftyone-mcp-server"]
156
+ }
157
+ }
158
+ }
159
+ ```
160
+
161
+ This downloads and runs the latest version automatically.
162
+
163
+ ## Usage
164
+
165
+ After configuration, restart your AI assistant and try:
109
166
 
110
167
  ```
111
168
  "List all my datasets"
@@ -116,57 +173,78 @@ And then you can query directly the agent:
116
173
  "Find similar images in my dataset"
117
174
  ```
118
175
 
119
- Example of functionality:
120
-
121
176
  The server starts with 50 built-in operators. Install plugins to expand functionality - the AI can discover and install plugins automatically when needed (brain, zoo, annotation, evaluation, and more).
122
177
 
123
178
  ## Architecture
124
179
 
125
- **Operator-Based Design:**
180
+ | Component | Description |
181
+ |-----------|-------------|
182
+ | **Operator System** | 80+ FiftyOne operators through unified interface |
183
+ | **Plugin System** | AI discovers and installs plugins on demand |
184
+ | **Session System** | Launch FiftyOne App for delegated operators |
185
+ | **Context Management** | Dataset, view, and selection state |
126
186
 
127
- - Exposes 80+ FiftyOne operators through unified interface
128
- - Dynamic schema resolution based on current context
129
- - Context state management (dataset, view, selection)
187
+ **Design Philosophy:** Minimal tool count (16 tools), maximum flexibility (full operator & plugin ecosystem).
130
188
 
131
- **Plugin Architecture:**
189
+ ## Contributing
132
190
 
133
- - AI discovers plugins on demand through `list_plugins`
134
- - Installs plugins automatically when needed
135
- - All plugin operators immediately available after installation
136
- - Self-expanding capability set
191
+ We welcome contributions! Here's how to set up a local development environment.
137
192
 
138
- **Session Architecture:**
193
+ ### Local Development Setup
194
+
195
+ ```bash
196
+ # Clone the repository
197
+ git clone https://github.com/AdonaiVera/fiftyone-mcp-server.git
198
+ cd fiftyone-mcp-server
139
199
 
140
- - AI can launch FiftyOne App when needed for delegated operators
141
- - Enables background execution for compute-intensive operations
142
- - Automatic session management through natural conversation
200
+ # Install Poetry (if not installed)
201
+ curl -sSL https://install.python-poetry.org | python3 -
143
202
 
144
- **Design Philosophy:**
203
+ # Install dependencies
204
+ poetry install
145
205
 
146
- - Minimal tool count (16 tools total)
147
- - Maximum flexibility (access to full operator & plugin ecosystem)
148
- - Mirrors FiftyOne App's execution model
206
+ # Run the server locally
207
+ poetry run fiftyone-mcp
208
+ ```
149
209
 
150
- ## Development
210
+ ### Testing Your Changes
151
211
 
152
212
  ```bash
153
213
  # Run tests
154
214
  poetry run pytest
155
215
 
156
- # Code quality
216
+ # Code formatting
157
217
  poetry run black -l 79 src/
218
+
219
+ # Linting
158
220
  poetry run pylint --errors-only src/
159
221
 
160
222
  # Test with MCP Inspector
161
223
  npx @modelcontextprotocol/inspector poetry run fiftyone-mcp
162
224
  ```
163
225
 
226
+ ### Using Local Version with Claude
227
+
228
+ To test your local changes with Claude Desktop, update your config:
229
+
230
+ ```json
231
+ {
232
+ "mcpServers": {
233
+ "fiftyone": {
234
+ "command": "poetry",
235
+ "args": ["run", "fiftyone-mcp"],
236
+ "cwd": "/absolute/path/to/fiftyone-mcp-server"
237
+ }
238
+ }
239
+ }
240
+ ```
164
241
  ## Resources
165
242
 
166
243
  - [FiftyOne Docs](https://docs.voxel51.com/)
167
244
  - [FiftyOne Operators](https://docs.voxel51.com/plugins/developing_plugins.html)
168
245
  - [Model Context Protocol](https://modelcontextprotocol.io)
169
246
  - [MCP Inspector](https://github.com/modelcontextprotocol/inspector)
247
+ - [PyPI Package](https://pypi.org/project/fiftyone-mcp-server/)
170
248
 
171
249
  ---
172
250
 
@@ -1,5 +1,7 @@
1
1
  # FiftyOne MCP Server
2
2
 
3
+ <!-- mcp-name: io.github.AdonaiVera/fiftyone-mcp-server -->
4
+
3
5
  <div align="center">
4
6
  <p align="center">
5
7
 
@@ -11,6 +13,9 @@
11
13
 
12
14
  > Control FiftyOne datasets through AI assistants using the Model Context Protocol
13
15
 
16
+ [![PyPI](https://img.shields.io/pypi/v/fiftyone-mcp-server.svg)](https://pypi.org/project/fiftyone-mcp-server/)
17
+ [![Python](https://img.shields.io/pypi/pyversions/fiftyone-mcp-server.svg)](https://pypi.org/project/fiftyone-mcp-server/)
18
+
14
19
  </p>
15
20
  </div>
16
21
 
@@ -22,59 +27,111 @@ Enable ChatGPT and Claude to explore datasets, execute operators, and build comp
22
27
 
23
28
  - **Dataset Management (3 tools)** - List, load, and summarize datasets
24
29
  - **Operator System (5 tools)** - Execute any FiftyOne operator dynamically
25
- - Context management (dataset/view/selection)
26
- - Operator discovery and schema resolution
27
- - Dynamic execution interface
28
30
  - **Plugin Management (5 tools)** - Discover and install FiftyOne plugins
29
- - List available plugins and their operators
30
- - Install plugins from GitHub on demand
31
- - Enable/disable plugins dynamically
32
31
  - **Session Management (3 tools)** - Control FiftyOne App for delegated execution
33
- - Launch/close FiftyOne App server
34
- - Required for background operators (brain, evaluation, etc.)
35
- - Session info and status monitoring
36
32
  - **Natural Language Workflows** - Multi-step operations through conversation
37
33
  - **ChatGPT & Claude Compatible** - Works with desktop apps
38
34
 
39
- ## Installation
35
+ ## Quick Start
36
+
37
+ ### Option 1: pip (Simplest)
40
38
 
41
39
  ```bash
42
- git clone https://github.com/AdonaiVera/fiftyone-mcp-server.git
43
- cd fiftyone-mcp-server
44
- poetry install
40
+ pip install fiftyone-mcp-server
45
41
  ```
46
42
 
47
- **Requirements:** Python 3.10-3.13, Poetry, FiftyOne
48
-
49
- ## Configuration
43
+ Then add to your AI tool config and restart:
50
44
 
51
- Add to MCP config:
45
+ <details>
46
+ <summary><b>Claude Desktop</b></summary>
52
47
 
53
- - ChatGPT: `~/Library/Application Support/ChatGPT/config.json`
54
- - Claude: `~/Library/Application Support/Claude/claude_desktop_config.json`
48
+ Edit `~/Library/Application Support/Claude/claude_desktop_config.json`:
55
49
 
56
50
  ```json
57
51
  {
58
52
  "mcpServers": {
59
53
  "fiftyone": {
60
- "command": "poetry",
61
- "args": ["run", "fiftyone-mcp"],
62
- "cwd": "/absolute/path/to/fiftyone-mcp-server"
54
+ "command": "fiftyone-mcp"
63
55
  }
64
56
  }
65
57
  }
66
58
  ```
59
+ </details>
67
60
 
68
- Restart your AI assistant.
61
+ <details>
62
+ <summary><b>Claude Code</b></summary>
69
63
 
70
- ## Usage
64
+ ```bash
65
+ claude mcp add fiftyone -- fiftyone-mcp
66
+ ```
67
+ </details>
68
+
69
+ <details>
70
+ <summary><b>Cursor</b></summary>
71
+
72
+ Add to Cursor MCP settings:
73
+
74
+ ```json
75
+ {
76
+ "fiftyone": {
77
+ "command": "fiftyone-mcp"
78
+ }
79
+ }
80
+ ```
81
+ </details>
82
+
83
+ <details>
84
+ <summary><b>VSCode</b></summary>
71
85
 
86
+ Add to `.vscode/mcp.json`:
87
+
88
+ ```json
89
+ {
90
+ "servers": {
91
+ "fiftyone": {
92
+ "command": "fiftyone-mcp"
93
+ }
94
+ }
95
+ }
72
96
  ```
73
- # Run
74
- poetry run fiftyone-mcp
97
+ </details>
98
+
99
+ <details>
100
+ <summary><b>ChatGPT Desktop</b></summary>
101
+
102
+ Edit `~/Library/Application Support/ChatGPT/config.json`:
103
+
104
+ ```json
105
+ {
106
+ "mcpServers": {
107
+ "fiftyone": {
108
+ "command": "fiftyone-mcp"
109
+ }
110
+ }
111
+ }
75
112
  ```
113
+ </details>
114
+
115
+ ### Option 2: uvx (No Install Needed)
76
116
 
77
- And then you can query directly the agent:
117
+ If you have [uv](https://github.com/astral-sh/uv) installed:
118
+
119
+ ```json
120
+ {
121
+ "mcpServers": {
122
+ "fiftyone": {
123
+ "command": "uvx",
124
+ "args": ["fiftyone-mcp-server"]
125
+ }
126
+ }
127
+ }
128
+ ```
129
+
130
+ This downloads and runs the latest version automatically.
131
+
132
+ ## Usage
133
+
134
+ After configuration, restart your AI assistant and try:
78
135
 
79
136
  ```
80
137
  "List all my datasets"
@@ -85,57 +142,78 @@ And then you can query directly the agent:
85
142
  "Find similar images in my dataset"
86
143
  ```
87
144
 
88
- Example of functionality:
89
-
90
145
  The server starts with 50 built-in operators. Install plugins to expand functionality - the AI can discover and install plugins automatically when needed (brain, zoo, annotation, evaluation, and more).
91
146
 
92
147
  ## Architecture
93
148
 
94
- **Operator-Based Design:**
149
+ | Component | Description |
150
+ |-----------|-------------|
151
+ | **Operator System** | 80+ FiftyOne operators through unified interface |
152
+ | **Plugin System** | AI discovers and installs plugins on demand |
153
+ | **Session System** | Launch FiftyOne App for delegated operators |
154
+ | **Context Management** | Dataset, view, and selection state |
95
155
 
96
- - Exposes 80+ FiftyOne operators through unified interface
97
- - Dynamic schema resolution based on current context
98
- - Context state management (dataset, view, selection)
156
+ **Design Philosophy:** Minimal tool count (16 tools), maximum flexibility (full operator & plugin ecosystem).
99
157
 
100
- **Plugin Architecture:**
158
+ ## Contributing
101
159
 
102
- - AI discovers plugins on demand through `list_plugins`
103
- - Installs plugins automatically when needed
104
- - All plugin operators immediately available after installation
105
- - Self-expanding capability set
160
+ We welcome contributions! Here's how to set up a local development environment.
106
161
 
107
- **Session Architecture:**
162
+ ### Local Development Setup
163
+
164
+ ```bash
165
+ # Clone the repository
166
+ git clone https://github.com/AdonaiVera/fiftyone-mcp-server.git
167
+ cd fiftyone-mcp-server
108
168
 
109
- - AI can launch FiftyOne App when needed for delegated operators
110
- - Enables background execution for compute-intensive operations
111
- - Automatic session management through natural conversation
169
+ # Install Poetry (if not installed)
170
+ curl -sSL https://install.python-poetry.org | python3 -
112
171
 
113
- **Design Philosophy:**
172
+ # Install dependencies
173
+ poetry install
114
174
 
115
- - Minimal tool count (16 tools total)
116
- - Maximum flexibility (access to full operator & plugin ecosystem)
117
- - Mirrors FiftyOne App's execution model
175
+ # Run the server locally
176
+ poetry run fiftyone-mcp
177
+ ```
118
178
 
119
- ## Development
179
+ ### Testing Your Changes
120
180
 
121
181
  ```bash
122
182
  # Run tests
123
183
  poetry run pytest
124
184
 
125
- # Code quality
185
+ # Code formatting
126
186
  poetry run black -l 79 src/
187
+
188
+ # Linting
127
189
  poetry run pylint --errors-only src/
128
190
 
129
191
  # Test with MCP Inspector
130
192
  npx @modelcontextprotocol/inspector poetry run fiftyone-mcp
131
193
  ```
132
194
 
195
+ ### Using Local Version with Claude
196
+
197
+ To test your local changes with Claude Desktop, update your config:
198
+
199
+ ```json
200
+ {
201
+ "mcpServers": {
202
+ "fiftyone": {
203
+ "command": "poetry",
204
+ "args": ["run", "fiftyone-mcp"],
205
+ "cwd": "/absolute/path/to/fiftyone-mcp-server"
206
+ }
207
+ }
208
+ }
209
+ ```
133
210
  ## Resources
134
211
 
135
212
  - [FiftyOne Docs](https://docs.voxel51.com/)
136
213
  - [FiftyOne Operators](https://docs.voxel51.com/plugins/developing_plugins.html)
137
214
  - [Model Context Protocol](https://modelcontextprotocol.io)
138
215
  - [MCP Inspector](https://github.com/modelcontextprotocol/inspector)
216
+ - [PyPI Package](https://pypi.org/project/fiftyone-mcp-server/)
139
217
 
140
218
  ---
141
219
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "fiftyone-mcp-server"
3
- version = "0.1.0"
3
+ version = "0.1.1"
4
4
  description = "MCP server exposing FiftyOne dataset analysis tools"
5
5
  authors = ["Adonai Vera <adonai.vera@gmail.com>"]
6
6
  license = "MIT"
@@ -16,12 +16,11 @@ classifiers = [
16
16
  "License :: OSI Approved :: MIT License",
17
17
  "Operating System :: OS Independent",
18
18
  "Programming Language :: Python :: 3",
19
+ "Programming Language :: Python :: 3.9",
19
20
  "Programming Language :: Python :: 3.10",
20
21
  "Programming Language :: Python :: 3.11",
21
22
  "Programming Language :: Python :: 3.12",
22
- "Programming Language :: Python :: 3.13",
23
23
  "Topic :: Scientific/Engineering :: Artificial Intelligence",
24
- "Topic :: Scientific/Engineering :: Image Recognition",
25
24
  ]
26
25
  packages = [{include = "fiftyone_mcp", from = "src"}]
27
26