fiftyone-mcp-server 0.1.0__py3-none-any.whl → 0.1.2__py3-none-any.whl
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.
- {fiftyone_mcp_server-0.1.0.dist-info → fiftyone_mcp_server-0.1.2.dist-info}/METADATA +134 -50
- {fiftyone_mcp_server-0.1.0.dist-info → fiftyone_mcp_server-0.1.2.dist-info}/RECORD +4 -4
- {fiftyone_mcp_server-0.1.0.dist-info → fiftyone_mcp_server-0.1.2.dist-info}/WHEEL +0 -0
- {fiftyone_mcp_server-0.1.0.dist-info → fiftyone_mcp_server-0.1.2.dist-info}/entry_points.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fiftyone-mcp-server
|
|
3
|
-
Version: 0.1.
|
|
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
|
+
[](https://pypi.org/project/fiftyone-mcp-server/)
|
|
48
|
+
[](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
|
-
##
|
|
66
|
+
## Quick Start
|
|
67
|
+
|
|
68
|
+
### Option 1: pip (Simplest)
|
|
71
69
|
|
|
72
70
|
```bash
|
|
73
|
-
|
|
74
|
-
cd fiftyone-mcp-server
|
|
75
|
-
poetry install
|
|
71
|
+
pip install fiftyone-mcp-server
|
|
76
72
|
```
|
|
77
73
|
|
|
78
|
-
|
|
74
|
+
Then add to your AI tool config and restart:
|
|
79
75
|
|
|
80
|
-
|
|
76
|
+
<details>
|
|
77
|
+
<summary><b>Claude Desktop</b></summary>
|
|
81
78
|
|
|
82
|
-
|
|
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": "
|
|
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
|
-
|
|
91
|
+
</details>
|
|
100
92
|
|
|
101
|
-
|
|
93
|
+
<details>
|
|
94
|
+
<summary><b>Claude Code</b></summary>
|
|
102
95
|
|
|
96
|
+
```bash
|
|
97
|
+
claude mcp add fiftyone -- fiftyone-mcp
|
|
103
98
|
```
|
|
104
|
-
|
|
105
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
194
|
+
## Contributing
|
|
132
195
|
|
|
133
|
-
|
|
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
|
-
|
|
198
|
+
### Local Development Setup
|
|
139
199
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
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
|
-
|
|
208
|
+
# Install dependencies
|
|
209
|
+
poetry install
|
|
145
210
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
211
|
+
# Run the server locally
|
|
212
|
+
poetry run fiftyone-mcp
|
|
213
|
+
```
|
|
149
214
|
|
|
150
|
-
|
|
215
|
+
### Testing Your Changes
|
|
151
216
|
|
|
152
217
|
```bash
|
|
153
218
|
# Run tests
|
|
154
219
|
poetry run pytest
|
|
155
220
|
|
|
156
|
-
# Code
|
|
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
|
|
|
@@ -7,7 +7,7 @@ fiftyone_mcp/tools/operators.py,sha256=bek1o1GjOsy8o4WAtv1DcMm35wvLbi2fcsOKsnIY9
|
|
|
7
7
|
fiftyone_mcp/tools/plugins.py,sha256=nwITl1k2cbhsP4hjuZvbwVOFe5-GQARrqghltpWOwUY,10509
|
|
8
8
|
fiftyone_mcp/tools/session.py,sha256=AYBaj6pugyC1w-hHf4EZJ149Edvy0amweZeoZ4h71Fw,10721
|
|
9
9
|
fiftyone_mcp/tools/utils.py,sha256=kAswqiJugRBuC4ZFaeA8mKPchDVQzic7mrSMR1zGTug,2660
|
|
10
|
-
fiftyone_mcp_server-0.1.
|
|
11
|
-
fiftyone_mcp_server-0.1.
|
|
12
|
-
fiftyone_mcp_server-0.1.
|
|
13
|
-
fiftyone_mcp_server-0.1.
|
|
10
|
+
fiftyone_mcp_server-0.1.2.dist-info/METADATA,sha256=cveI1NVlOoH5NexWeb1oNisF2iJEtvQ5FdS9khrBuu4,6807
|
|
11
|
+
fiftyone_mcp_server-0.1.2.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
|
|
12
|
+
fiftyone_mcp_server-0.1.2.dist-info/entry_points.txt,sha256=SaZqYMrreTAYdbR5Dtle_pMKL5hFpi95dVPWMmlDXHs,56
|
|
13
|
+
fiftyone_mcp_server-0.1.2.dist-info/RECORD,,
|
|
File without changes
|
{fiftyone_mcp_server-0.1.0.dist-info → fiftyone_mcp_server-0.1.2.dist-info}/entry_points.txt
RENAMED
|
File without changes
|