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.
- {fiftyone_mcp_server-0.1.0 → fiftyone_mcp_server-0.1.2}/PKG-INFO +134 -50
- fiftyone_mcp_server-0.1.2/README.md +226 -0
- {fiftyone_mcp_server-0.1.0 → fiftyone_mcp_server-0.1.2}/pyproject.toml +2 -3
- fiftyone_mcp_server-0.1.0/README.md +0 -142
- {fiftyone_mcp_server-0.1.0 → fiftyone_mcp_server-0.1.2}/src/fiftyone_mcp/__init__.py +0 -0
- {fiftyone_mcp_server-0.1.0 → fiftyone_mcp_server-0.1.2}/src/fiftyone_mcp/config/settings.json +0 -0
- {fiftyone_mcp_server-0.1.0 → fiftyone_mcp_server-0.1.2}/src/fiftyone_mcp/server.py +0 -0
- {fiftyone_mcp_server-0.1.0 → fiftyone_mcp_server-0.1.2}/src/fiftyone_mcp/tools/__init__.py +0 -0
- {fiftyone_mcp_server-0.1.0 → fiftyone_mcp_server-0.1.2}/src/fiftyone_mcp/tools/datasets.py +0 -0
- {fiftyone_mcp_server-0.1.0 → fiftyone_mcp_server-0.1.2}/src/fiftyone_mcp/tools/operators.py +0 -0
- {fiftyone_mcp_server-0.1.0 → fiftyone_mcp_server-0.1.2}/src/fiftyone_mcp/tools/plugins.py +0 -0
- {fiftyone_mcp_server-0.1.0 → fiftyone_mcp_server-0.1.2}/src/fiftyone_mcp/tools/session.py +0 -0
- {fiftyone_mcp_server-0.1.0 → fiftyone_mcp_server-0.1.2}/src/fiftyone_mcp/tools/utils.py +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
|
|
|
@@ -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">
|
|
10
|
+
<img src="https://user-images.githubusercontent.com/25985824/106288518-24bb7680-6216-11eb-8f10-60052c519586.png" height="50px">
|
|
11
|
+
|
|
12
|
+

|
|
13
|
+
|
|
14
|
+
> Control FiftyOne datasets through AI assistants using the Model Context Protocol
|
|
15
|
+
|
|
16
|
+
[](https://pypi.org/project/fiftyone-mcp-server/)
|
|
17
|
+
[](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.
|
|
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">
|
|
8
|
-
<img src="https://user-images.githubusercontent.com/25985824/106288518-24bb7680-6216-11eb-8f10-60052c519586.png" height="50px">
|
|
9
|
-
|
|
10
|
-

|
|
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)
|
|
File without changes
|
{fiftyone_mcp_server-0.1.0 → fiftyone_mcp_server-0.1.2}/src/fiftyone_mcp/config/settings.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|