fiftyone-mcp-server 0.1.0__py3-none-any.whl → 0.1.1__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.1.dist-info}/METADATA +128 -50
- {fiftyone_mcp_server-0.1.0.dist-info → fiftyone_mcp_server-0.1.1.dist-info}/RECORD +4 -4
- {fiftyone_mcp_server-0.1.0.dist-info → fiftyone_mcp_server-0.1.1.dist-info}/WHEEL +0 -0
- {fiftyone_mcp_server-0.1.0.dist-info → fiftyone_mcp_server-0.1.1.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.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
|
+
[](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,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
|
-
##
|
|
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
|
-
|
|
79
|
-
|
|
80
|
-
## Configuration
|
|
74
|
+
Then add to your AI tool config and restart:
|
|
81
75
|
|
|
82
|
-
|
|
76
|
+
<details>
|
|
77
|
+
<summary><b>Claude Desktop</b></summary>
|
|
83
78
|
|
|
84
|
-
|
|
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
|
```
|
|
90
|
+
</details>
|
|
98
91
|
|
|
99
|
-
|
|
92
|
+
<details>
|
|
93
|
+
<summary><b>Claude Code</b></summary>
|
|
100
94
|
|
|
101
|
-
|
|
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
|
-
|
|
105
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
189
|
+
## Contributing
|
|
132
190
|
|
|
133
|
-
|
|
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
|
-
|
|
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
|
-
|
|
141
|
-
-
|
|
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
|
-
|
|
203
|
+
# Install dependencies
|
|
204
|
+
poetry install
|
|
145
205
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
206
|
+
# Run the server locally
|
|
207
|
+
poetry run fiftyone-mcp
|
|
208
|
+
```
|
|
149
209
|
|
|
150
|
-
|
|
210
|
+
### Testing Your Changes
|
|
151
211
|
|
|
152
212
|
```bash
|
|
153
213
|
# Run tests
|
|
154
214
|
poetry run pytest
|
|
155
215
|
|
|
156
|
-
# Code
|
|
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
|
|
|
@@ -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.1.dist-info/METADATA,sha256=dy8MpPrxDXe-rrSOILX_OmiBxc2QaBmg51RKZ0woTJ0,6665
|
|
11
|
+
fiftyone_mcp_server-0.1.1.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
|
|
12
|
+
fiftyone_mcp_server-0.1.1.dist-info/entry_points.txt,sha256=SaZqYMrreTAYdbR5Dtle_pMKL5hFpi95dVPWMmlDXHs,56
|
|
13
|
+
fiftyone_mcp_server-0.1.1.dist-info/RECORD,,
|
|
File without changes
|
{fiftyone_mcp_server-0.1.0.dist-info → fiftyone_mcp_server-0.1.1.dist-info}/entry_points.txt
RENAMED
|
File without changes
|