fiftyone-mcp-server 0.1.0__tar.gz → 0.1.2__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.2
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,116 @@ 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
74
+ Then add to your AI tool config and restart:
79
75
 
80
- ## Configuration
76
+ <details>
77
+ <summary><b>Claude Desktop</b></summary>
81
78
 
82
- Add to MCP config:
83
-
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
  ```
98
90
 
99
- Restart your AI assistant.
91
+ </details>
100
92
 
101
- ## Usage
93
+ <details>
94
+ <summary><b>Claude Code</b></summary>
102
95
 
96
+ ```bash
97
+ claude mcp add fiftyone -- fiftyone-mcp
103
98
  ```
104
- # Run
105
- poetry run fiftyone-mcp
99
+
100
+ </details>
101
+
102
+ <details>
103
+ <summary><b>Cursor</b></summary>
104
+
105
+ Add to Cursor MCP settings:
106
+
107
+ ```json
108
+ {
109
+ "fiftyone": {
110
+ "command": "fiftyone-mcp"
111
+ }
112
+ }
113
+ ```
114
+
115
+ </details>
116
+
117
+ <details>
118
+ <summary><b>VSCode</b></summary>
119
+
120
+ Add to `.vscode/mcp.json`:
121
+
122
+ ```json
123
+ {
124
+ "servers": {
125
+ "fiftyone": {
126
+ "command": "fiftyone-mcp"
127
+ }
128
+ }
129
+ }
130
+ ```
131
+
132
+ </details>
133
+
134
+ <details>
135
+ <summary><b>ChatGPT Desktop</b></summary>
136
+
137
+ Edit `~/Library/Application Support/ChatGPT/config.json`:
138
+
139
+ ```json
140
+ {
141
+ "mcpServers": {
142
+ "fiftyone": {
143
+ "command": "fiftyone-mcp"
144
+ }
145
+ }
146
+ }
106
147
  ```
107
148
 
108
- And then you can query directly the agent:
149
+ </details>
150
+
151
+ ### Option 2: uvx (No Install Needed)
152
+
153
+ If you have [uv](https://github.com/astral-sh/uv) installed:
154
+
155
+ ```json
156
+ {
157
+ "mcpServers": {
158
+ "fiftyone": {
159
+ "command": "uvx",
160
+ "args": ["fiftyone-mcp-server"]
161
+ }
162
+ }
163
+ }
164
+ ```
165
+
166
+ This downloads and runs the latest version automatically.
167
+
168
+ ## Usage
169
+
170
+ After configuration, restart your AI assistant and try:
109
171
 
110
172
  ```
111
173
  "List all my datasets"
@@ -116,57 +178,79 @@ And then you can query directly the agent:
116
178
  "Find similar images in my dataset"
117
179
  ```
118
180
 
119
- Example of functionality:
120
-
121
181
  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
182
 
123
183
  ## Architecture
124
184
 
125
- **Operator-Based Design:**
185
+ | Component | Description |
186
+ | ---------------------- | ------------------------------------------------ |
187
+ | **Operator System** | 80+ FiftyOne operators through unified interface |
188
+ | **Plugin System** | AI discovers and installs plugins on demand |
189
+ | **Session System** | Launch FiftyOne App for delegated operators |
190
+ | **Context Management** | Dataset, view, and selection state |
126
191
 
127
- - Exposes 80+ FiftyOne operators through unified interface
128
- - Dynamic schema resolution based on current context
129
- - Context state management (dataset, view, selection)
192
+ **Design Philosophy:** Minimal tool count (16 tools), maximum flexibility (full operator & plugin ecosystem).
130
193
 
131
- **Plugin Architecture:**
194
+ ## Contributing
132
195
 
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
196
+ We welcome contributions! Here's how to set up a local development environment.
137
197
 
138
- **Session Architecture:**
198
+ ### Local Development Setup
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
+ ```bash
201
+ # Clone the repository
202
+ git clone https://github.com/AdonaiVera/fiftyone-mcp-server.git
203
+ cd fiftyone-mcp-server
204
+
205
+ # Install Poetry (if not installed)
206
+ curl -sSL https://install.python-poetry.org | python3 -
143
207
 
144
- **Design Philosophy:**
208
+ # Install dependencies
209
+ poetry install
145
210
 
146
- - Minimal tool count (16 tools total)
147
- - Maximum flexibility (access to full operator & plugin ecosystem)
148
- - Mirrors FiftyOne App's execution model
211
+ # Run the server locally
212
+ poetry run fiftyone-mcp
213
+ ```
149
214
 
150
- ## Development
215
+ ### Testing Your Changes
151
216
 
152
217
  ```bash
153
218
  # Run tests
154
219
  poetry run pytest
155
220
 
156
- # Code quality
221
+ # Code formatting
157
222
  poetry run black -l 79 src/
223
+
224
+ # Linting
158
225
  poetry run pylint --errors-only src/
159
226
 
160
227
  # Test with MCP Inspector
161
228
  npx @modelcontextprotocol/inspector poetry run fiftyone-mcp
162
229
  ```
163
230
 
231
+ ### Using Local Version with Claude
232
+
233
+ To test your local changes with Claude Desktop, update your config:
234
+
235
+ ```json
236
+ {
237
+ "mcpServers": {
238
+ "fiftyone": {
239
+ "command": "poetry",
240
+ "args": ["run", "fiftyone-mcp"],
241
+ "cwd": "/absolute/path/to/fiftyone-mcp-server"
242
+ }
243
+ }
244
+ }
245
+ ```
246
+
164
247
  ## Resources
165
248
 
166
249
  - [FiftyOne Docs](https://docs.voxel51.com/)
167
250
  - [FiftyOne Operators](https://docs.voxel51.com/plugins/developing_plugins.html)
168
251
  - [Model Context Protocol](https://modelcontextprotocol.io)
169
252
  - [MCP Inspector](https://github.com/modelcontextprotocol/inspector)
253
+ - [PyPI Package](https://pypi.org/project/fiftyone-mcp-server/)
170
254
 
171
255
  ---
172
256
 
@@ -0,0 +1,226 @@
1
+ # FiftyOne MCP Server
2
+
3
+ <!-- mcp-name: io.github.AdonaiVera/fiftyone-mcp-server -->
4
+
5
+ <div align="center">
6
+ <p align="center">
7
+
8
+ <!-- prettier-ignore -->
9
+ <img src="https://user-images.githubusercontent.com/25985824/106288517-2422e000-6216-11eb-871d-26ad2e7b1e59.png" height="55px"> &nbsp;
10
+ <img src="https://user-images.githubusercontent.com/25985824/106288518-24bb7680-6216-11eb-8f10-60052c519586.png" height="50px">
11
+
12
+ ![fo_agent](https://github.com/user-attachments/assets/ffba1886-125c-4c73-ae51-a300b652cffe)
13
+
14
+ > Control FiftyOne datasets through AI assistants using the Model Context Protocol
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
+
19
+ </p>
20
+ </div>
21
+
22
+ ## Overview
23
+
24
+ Enable ChatGPT and Claude to explore datasets, execute operators, and build computer vision workflows through natural language. This server exposes FiftyOne's operator framework (80+ built-in operators) through 16 MCP tools.
25
+
26
+ ## Features
27
+
28
+ - **Dataset Management (3 tools)** - List, load, and summarize datasets
29
+ - **Operator System (5 tools)** - Execute any FiftyOne operator dynamically
30
+ - **Plugin Management (5 tools)** - Discover and install FiftyOne plugins
31
+ - **Session Management (3 tools)** - Control FiftyOne App for delegated execution
32
+ - **Natural Language Workflows** - Multi-step operations through conversation
33
+ - **ChatGPT & Claude Compatible** - Works with desktop apps
34
+
35
+ ## Quick Start
36
+
37
+ ### Option 1: pip (Simplest)
38
+
39
+ ```bash
40
+ pip install fiftyone-mcp-server
41
+ ```
42
+
43
+ Then add to your AI tool config and restart:
44
+
45
+ <details>
46
+ <summary><b>Claude Desktop</b></summary>
47
+
48
+ Edit `~/Library/Application Support/Claude/claude_desktop_config.json`:
49
+
50
+ ```json
51
+ {
52
+ "mcpServers": {
53
+ "fiftyone": {
54
+ "command": "fiftyone-mcp"
55
+ }
56
+ }
57
+ }
58
+ ```
59
+
60
+ </details>
61
+
62
+ <details>
63
+ <summary><b>Claude Code</b></summary>
64
+
65
+ ```bash
66
+ claude mcp add fiftyone -- fiftyone-mcp
67
+ ```
68
+
69
+ </details>
70
+
71
+ <details>
72
+ <summary><b>Cursor</b></summary>
73
+
74
+ Add to Cursor MCP settings:
75
+
76
+ ```json
77
+ {
78
+ "fiftyone": {
79
+ "command": "fiftyone-mcp"
80
+ }
81
+ }
82
+ ```
83
+
84
+ </details>
85
+
86
+ <details>
87
+ <summary><b>VSCode</b></summary>
88
+
89
+ Add to `.vscode/mcp.json`:
90
+
91
+ ```json
92
+ {
93
+ "servers": {
94
+ "fiftyone": {
95
+ "command": "fiftyone-mcp"
96
+ }
97
+ }
98
+ }
99
+ ```
100
+
101
+ </details>
102
+
103
+ <details>
104
+ <summary><b>ChatGPT Desktop</b></summary>
105
+
106
+ Edit `~/Library/Application Support/ChatGPT/config.json`:
107
+
108
+ ```json
109
+ {
110
+ "mcpServers": {
111
+ "fiftyone": {
112
+ "command": "fiftyone-mcp"
113
+ }
114
+ }
115
+ }
116
+ ```
117
+
118
+ </details>
119
+
120
+ ### Option 2: uvx (No Install Needed)
121
+
122
+ If you have [uv](https://github.com/astral-sh/uv) installed:
123
+
124
+ ```json
125
+ {
126
+ "mcpServers": {
127
+ "fiftyone": {
128
+ "command": "uvx",
129
+ "args": ["fiftyone-mcp-server"]
130
+ }
131
+ }
132
+ }
133
+ ```
134
+
135
+ This downloads and runs the latest version automatically.
136
+
137
+ ## Usage
138
+
139
+ After configuration, restart your AI assistant and try:
140
+
141
+ ```
142
+ "List all my datasets"
143
+ "Load quickstart dataset and show summary"
144
+ "What operators are available for managing samples?"
145
+ "Set context to my dataset, then tag high-confidence samples"
146
+ "What plugins are available? Install the brain plugin"
147
+ "Find similar images in my dataset"
148
+ ```
149
+
150
+ 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).
151
+
152
+ ## Architecture
153
+
154
+ | Component | Description |
155
+ | ---------------------- | ------------------------------------------------ |
156
+ | **Operator System** | 80+ FiftyOne operators through unified interface |
157
+ | **Plugin System** | AI discovers and installs plugins on demand |
158
+ | **Session System** | Launch FiftyOne App for delegated operators |
159
+ | **Context Management** | Dataset, view, and selection state |
160
+
161
+ **Design Philosophy:** Minimal tool count (16 tools), maximum flexibility (full operator & plugin ecosystem).
162
+
163
+ ## Contributing
164
+
165
+ We welcome contributions! Here's how to set up a local development environment.
166
+
167
+ ### Local Development Setup
168
+
169
+ ```bash
170
+ # Clone the repository
171
+ git clone https://github.com/AdonaiVera/fiftyone-mcp-server.git
172
+ cd fiftyone-mcp-server
173
+
174
+ # Install Poetry (if not installed)
175
+ curl -sSL https://install.python-poetry.org | python3 -
176
+
177
+ # Install dependencies
178
+ poetry install
179
+
180
+ # Run the server locally
181
+ poetry run fiftyone-mcp
182
+ ```
183
+
184
+ ### Testing Your Changes
185
+
186
+ ```bash
187
+ # Run tests
188
+ poetry run pytest
189
+
190
+ # Code formatting
191
+ poetry run black -l 79 src/
192
+
193
+ # Linting
194
+ poetry run pylint --errors-only src/
195
+
196
+ # Test with MCP Inspector
197
+ npx @modelcontextprotocol/inspector poetry run fiftyone-mcp
198
+ ```
199
+
200
+ ### Using Local Version with Claude
201
+
202
+ To test your local changes with Claude Desktop, update your config:
203
+
204
+ ```json
205
+ {
206
+ "mcpServers": {
207
+ "fiftyone": {
208
+ "command": "poetry",
209
+ "args": ["run", "fiftyone-mcp"],
210
+ "cwd": "/absolute/path/to/fiftyone-mcp-server"
211
+ }
212
+ }
213
+ }
214
+ ```
215
+
216
+ ## Resources
217
+
218
+ - [FiftyOne Docs](https://docs.voxel51.com/)
219
+ - [FiftyOne Operators](https://docs.voxel51.com/plugins/developing_plugins.html)
220
+ - [Model Context Protocol](https://modelcontextprotocol.io)
221
+ - [MCP Inspector](https://github.com/modelcontextprotocol/inspector)
222
+ - [PyPI Package](https://pypi.org/project/fiftyone-mcp-server/)
223
+
224
+ ---
225
+
226
+ Built with [FiftyOne](https://voxel51.com/fiftyone) and [Model Context Protocol](https://modelcontextprotocol.io)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "fiftyone-mcp-server"
3
- version = "0.1.0"
3
+ version = "0.1.2"
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
 
@@ -1,142 +0,0 @@
1
- # FiftyOne MCP Server
2
-
3
- <div align="center">
4
- <p align="center">
5
-
6
- <!-- prettier-ignore -->
7
- <img src="https://user-images.githubusercontent.com/25985824/106288517-2422e000-6216-11eb-871d-26ad2e7b1e59.png" height="55px"> &nbsp;
8
- <img src="https://user-images.githubusercontent.com/25985824/106288518-24bb7680-6216-11eb-8f10-60052c519586.png" height="50px">
9
-
10
- ![fo_agent](https://github.com/user-attachments/assets/ffba1886-125c-4c73-ae51-a300b652cffe)
11
-
12
- > Control FiftyOne datasets through AI assistants using the Model Context Protocol
13
-
14
- </p>
15
- </div>
16
-
17
- ## Overview
18
-
19
- Enable ChatGPT and Claude to explore datasets, execute operators, and build computer vision workflows through natural language. This server exposes FiftyOne's operator framework (80+ built-in operators) through 16 MCP tools.
20
-
21
- ## Features
22
-
23
- - **Dataset Management (3 tools)** - List, load, and summarize datasets
24
- - **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
- - **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
- - **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
- - **Natural Language Workflows** - Multi-step operations through conversation
37
- - **ChatGPT & Claude Compatible** - Works with desktop apps
38
-
39
- ## Installation
40
-
41
- ```bash
42
- git clone https://github.com/AdonaiVera/fiftyone-mcp-server.git
43
- cd fiftyone-mcp-server
44
- poetry install
45
- ```
46
-
47
- **Requirements:** Python 3.10-3.13, Poetry, FiftyOne
48
-
49
- ## Configuration
50
-
51
- Add to MCP config:
52
-
53
- - ChatGPT: `~/Library/Application Support/ChatGPT/config.json`
54
- - Claude: `~/Library/Application Support/Claude/claude_desktop_config.json`
55
-
56
- ```json
57
- {
58
- "mcpServers": {
59
- "fiftyone": {
60
- "command": "poetry",
61
- "args": ["run", "fiftyone-mcp"],
62
- "cwd": "/absolute/path/to/fiftyone-mcp-server"
63
- }
64
- }
65
- }
66
- ```
67
-
68
- Restart your AI assistant.
69
-
70
- ## Usage
71
-
72
- ```
73
- # Run
74
- poetry run fiftyone-mcp
75
- ```
76
-
77
- And then you can query directly the agent:
78
-
79
- ```
80
- "List all my datasets"
81
- "Load quickstart dataset and show summary"
82
- "What operators are available for managing samples?"
83
- "Set context to my dataset, then tag high-confidence samples"
84
- "What plugins are available? Install the brain plugin"
85
- "Find similar images in my dataset"
86
- ```
87
-
88
- Example of functionality:
89
-
90
- 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
-
92
- ## Architecture
93
-
94
- **Operator-Based Design:**
95
-
96
- - Exposes 80+ FiftyOne operators through unified interface
97
- - Dynamic schema resolution based on current context
98
- - Context state management (dataset, view, selection)
99
-
100
- **Plugin Architecture:**
101
-
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
106
-
107
- **Session Architecture:**
108
-
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
112
-
113
- **Design Philosophy:**
114
-
115
- - Minimal tool count (16 tools total)
116
- - Maximum flexibility (access to full operator & plugin ecosystem)
117
- - Mirrors FiftyOne App's execution model
118
-
119
- ## Development
120
-
121
- ```bash
122
- # Run tests
123
- poetry run pytest
124
-
125
- # Code quality
126
- poetry run black -l 79 src/
127
- poetry run pylint --errors-only src/
128
-
129
- # Test with MCP Inspector
130
- npx @modelcontextprotocol/inspector poetry run fiftyone-mcp
131
- ```
132
-
133
- ## Resources
134
-
135
- - [FiftyOne Docs](https://docs.voxel51.com/)
136
- - [FiftyOne Operators](https://docs.voxel51.com/plugins/developing_plugins.html)
137
- - [Model Context Protocol](https://modelcontextprotocol.io)
138
- - [MCP Inspector](https://github.com/modelcontextprotocol/inspector)
139
-
140
- ---
141
-
142
- Built with [FiftyOne](https://voxel51.com/fiftyone) and [Model Context Protocol](https://modelcontextprotocol.io)