iflow-mcp_egnyte-server 0.1.0__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.
- iflow_mcp_egnyte_server-0.1.0/PKG-INFO +232 -0
- iflow_mcp_egnyte_server-0.1.0/README.md +220 -0
- iflow_mcp_egnyte_server-0.1.0/iflow_mcp_egnyte_server.egg-info/PKG-INFO +232 -0
- iflow_mcp_egnyte_server-0.1.0/iflow_mcp_egnyte_server.egg-info/SOURCES.txt +8 -0
- iflow_mcp_egnyte_server-0.1.0/iflow_mcp_egnyte_server.egg-info/dependency_links.txt +1 -0
- iflow_mcp_egnyte_server-0.1.0/iflow_mcp_egnyte_server.egg-info/entry_points.txt +2 -0
- iflow_mcp_egnyte_server-0.1.0/iflow_mcp_egnyte_server.egg-info/requires.txt +5 -0
- iflow_mcp_egnyte_server-0.1.0/iflow_mcp_egnyte_server.egg-info/top_level.txt +1 -0
- iflow_mcp_egnyte_server-0.1.0/pyproject.toml +16 -0
- iflow_mcp_egnyte_server-0.1.0/setup.cfg +4 -0
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: iflow-mcp_egnyte-server
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Add your description here
|
|
5
|
+
Requires-Python: >=3.11
|
|
6
|
+
Description-Content-Type: text/markdown
|
|
7
|
+
Requires-Dist: httpx>=0.28.1
|
|
8
|
+
Requires-Dist: langchain-core>=0.3.51
|
|
9
|
+
Requires-Dist: mcp[cli]>=1.6.0
|
|
10
|
+
Requires-Dist: requests>=2.32.3
|
|
11
|
+
Requires-Dist: egnyte>=0.5.3
|
|
12
|
+
|
|
13
|
+
# Egnyte MCP Server
|
|
14
|
+
|
|
15
|
+
An **MCP (Model Context Protocol)** server that connects to your Egnyte domain and exposes document search and retrieval functionality for use in **AI agents** like Cursor, Claude, or OpenAI.
|
|
16
|
+
|
|
17
|
+
This server uses **Egnyteβs public APIs and Python SDK** to support secure, real-time access to your Egnyte content, enabling smart AI-driven workflows while respecting existing permissions.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## π About
|
|
22
|
+
|
|
23
|
+
Model Context Protocol (MCP) is a framework to help AI agents securely query external systems for real-time context.
|
|
24
|
+
The **Egnyte MCP Server** allows agents to:
|
|
25
|
+
|
|
26
|
+
- Search for documents by name
|
|
27
|
+
- Retrieve relevant documents from Egnyte
|
|
28
|
+
- Seamlessly integrate enterprise content into generative AI workflows
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## π οΈ Tools Implemented
|
|
33
|
+
|
|
34
|
+
| Tool Name | Description |
|
|
35
|
+
|-----------------------------------|-----------------------------------------------------------------------------|
|
|
36
|
+
| `search_for_document_by_name` | Searches for a document in your Egnyte domain using its filename. |
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## π Requirements
|
|
41
|
+
|
|
42
|
+
- Python 3.11+
|
|
43
|
+
- Egnyte API access token - Register on https://developers.egnyte.com/member/register to get API key for your Egnyte account
|
|
44
|
+
- An Egnyte domain with files to test
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
# Installing Prerequisites
|
|
48
|
+
|
|
49
|
+
## π§ Installation
|
|
50
|
+
|
|
51
|
+
### 1. Clone the Repository
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
git clone https://github.com/egnyte/egnyte-mcp-server.git
|
|
55
|
+
cd egnyte-mcp-server
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### 2. Install `uv` (Python environment & dependency manager)
|
|
59
|
+
|
|
60
|
+
**Mac/Linux:**
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**Windows (PowerShell):**
|
|
67
|
+
|
|
68
|
+
```powershell
|
|
69
|
+
irm https://astral.sh/uv/install.ps1 | iex
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### 3. Install Egnyte SDK
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
uv pip install egnyte
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
π [Egnyte SDK Documentation](https://developers.egnyte.com/egnyte_sdk#python)
|
|
79
|
+
π [Egnyte SDK GitHub](https://github.com/egnyte/python-egnyte)
|
|
80
|
+
|
|
81
|
+
### 4. Setting up Environment Variables
|
|
82
|
+
1. **Create a `.env` File**
|
|
83
|
+
|
|
84
|
+
Create a `.env` file inside the root directory with the following content:
|
|
85
|
+
```
|
|
86
|
+
DOMAIN=your-egnyte-domain.egnyte.com
|
|
87
|
+
ACCESS_TOKEN=your-access-token-here
|
|
88
|
+
```
|
|
89
|
+
2. **Update with Your Credentials**
|
|
90
|
+
|
|
91
|
+
- Replace `your-egnyte-domain.egnyte.com` with your actual Egnyte domain.
|
|
92
|
+
- Replace `your-access-token-here` with your actual Egnyte API access token.
|
|
93
|
+
|
|
94
|
+
This `.env` file is necessary for the server to authenticate and connect securely to your Egnyte domain.
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
# π Running the MCP Server
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
uv run server.py --python 3.11
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
This will start the MCP server locally and make the tools available to MCP-compliant clients.
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
# β‘ Setting up MCP Clients
|
|
107
|
+
|
|
108
|
+
This is a sample MCP (Model Context Protocol) client that connects to a locally running MCP server using `fastmcp`.
|
|
109
|
+
It uses **Python Stdio Transport** to communicate with the server and call specific tools by name.
|
|
110
|
+
|
|
111
|
+
## How it works
|
|
112
|
+
|
|
113
|
+
- Connects to the MCP server (`server.py`) via Python Stdio.
|
|
114
|
+
- Lists available tools exposed by the server.
|
|
115
|
+
- Calls a specific tool by its name, with provided arguments.
|
|
116
|
+
- The response is returned based on the tool execution.
|
|
117
|
+
|
|
118
|
+
## Prerequisites
|
|
119
|
+
|
|
120
|
+
- Python 3.11+
|
|
121
|
+
- `fastmcp` library installed:
|
|
122
|
+
```bash
|
|
123
|
+
uv pip install fastmcp
|
|
124
|
+
- MCP server (`server.py`) running locally
|
|
125
|
+
- `.env` file configured
|
|
126
|
+
|
|
127
|
+
## Usage
|
|
128
|
+
|
|
129
|
+
1. **Ensure the MCP server is running** first.
|
|
130
|
+
2. **Run the client** using the command:
|
|
131
|
+
```bash
|
|
132
|
+
python client.py
|
|
133
|
+
|
|
134
|
+
### Cursor IDE Setup
|
|
135
|
+
|
|
136
|
+
1. Open Cursor β Settings β **MCP**
|
|
137
|
+
2. Click **"Add new global MCP server"**
|
|
138
|
+
3. Add the following configuration:
|
|
139
|
+
|
|
140
|
+
```json
|
|
141
|
+
{
|
|
142
|
+
"mcpServers": {
|
|
143
|
+
"Egnyte Document Retriever": {
|
|
144
|
+
"command": "uv",
|
|
145
|
+
"args": [
|
|
146
|
+
"--directory",
|
|
147
|
+
"/path/to/egnyte-mcp-server",
|
|
148
|
+
"run",
|
|
149
|
+
"server.py"
|
|
150
|
+
]
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
```
|
|
155
|
+
β
Replace `/path/to/egnyte-mcp-server` with your actual directory path.
|
|
156
|
+
|
|
157
|
+
4. Save and enable the server in the MCP settings.
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## πΌοΈ Example Screenshots
|
|
162
|
+
|
|
163
|
+
### Cursor MCP Server Configuration
|
|
164
|
+
|
|
165
|
+

|
|
166
|
+
|
|
167
|
+
### Cursor MCP Query in Action
|
|
168
|
+
|
|
169
|
+

|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
### Claude Desktop Setup
|
|
174
|
+
|
|
175
|
+
To connect Egnyteβs MCP server to Claude Desktop:
|
|
176
|
+
|
|
177
|
+
1. Launch Claude Desktop and open MCP tool configuration
|
|
178
|
+
2. Go to Settings β MCP Tools β Add New Server
|
|
179
|
+
3. Add the following configuration:
|
|
180
|
+
|
|
181
|
+
```json
|
|
182
|
+
{
|
|
183
|
+
"mcpServers": {
|
|
184
|
+
"egnyte": {
|
|
185
|
+
"command": "python3",
|
|
186
|
+
"args": ["server.py"],
|
|
187
|
+
"cwd": "/Users/yourname/path/to/egnyte-mcp-server",
|
|
188
|
+
"env": {
|
|
189
|
+
"DOMAIN": "your-egnyte-domain.egnyte.com",
|
|
190
|
+
"ACCESS_TOKEN": "your-access-token"
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
```
|
|
196
|
+
β
Replace ` /Users/yourname/path/to/egnyte-mcp-server ` with your actual directory path.
|
|
197
|
+
|
|
198
|
+
4. Save and Start - Claude should detect the server, list search_for_document_by_name under βAvailable MCP tools,β and be able to call it with filenames.
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
## πΌοΈ Example Screenshots
|
|
202
|
+
|
|
203
|
+
### Claude MCP Server Configuration
|
|
204
|
+
|
|
205
|
+

|
|
206
|
+
|
|
207
|
+
### Claude MCP Query in Action
|
|
208
|
+
|
|
209
|
+

|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
## π Roadmap
|
|
214
|
+
|
|
215
|
+
- β
File search by name
|
|
216
|
+
- β
Retrieve relevant documents
|
|
217
|
+
- π Hybrid search (structured + content)
|
|
218
|
+
- π Document text extraction
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
#Helping with development
|
|
223
|
+
|
|
224
|
+
Please report any problems you find to api-support@egnyte.com or pint@egnyte.com
|
|
225
|
+
|
|
226
|
+
If you'd like to fix something yourself, please fork this repository, commit the fixes and updates to tests, then set up a pull request with information what you're fixing.
|
|
227
|
+
|
|
228
|
+
## π Helpful Links
|
|
229
|
+
|
|
230
|
+
- [Egnyte Developer Portal](https://developers.egnyte.com/)
|
|
231
|
+
- [Egnyte Python SDK](https://github.com/egnyte/python-egnyte)
|
|
232
|
+
- [Cursor MCP Documentation](https://docs.cursor.com/context/model-context-protocol)
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
# Egnyte MCP Server
|
|
2
|
+
|
|
3
|
+
An **MCP (Model Context Protocol)** server that connects to your Egnyte domain and exposes document search and retrieval functionality for use in **AI agents** like Cursor, Claude, or OpenAI.
|
|
4
|
+
|
|
5
|
+
This server uses **Egnyteβs public APIs and Python SDK** to support secure, real-time access to your Egnyte content, enabling smart AI-driven workflows while respecting existing permissions.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## π About
|
|
10
|
+
|
|
11
|
+
Model Context Protocol (MCP) is a framework to help AI agents securely query external systems for real-time context.
|
|
12
|
+
The **Egnyte MCP Server** allows agents to:
|
|
13
|
+
|
|
14
|
+
- Search for documents by name
|
|
15
|
+
- Retrieve relevant documents from Egnyte
|
|
16
|
+
- Seamlessly integrate enterprise content into generative AI workflows
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## π οΈ Tools Implemented
|
|
21
|
+
|
|
22
|
+
| Tool Name | Description |
|
|
23
|
+
|-----------------------------------|-----------------------------------------------------------------------------|
|
|
24
|
+
| `search_for_document_by_name` | Searches for a document in your Egnyte domain using its filename. |
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## π Requirements
|
|
29
|
+
|
|
30
|
+
- Python 3.11+
|
|
31
|
+
- Egnyte API access token - Register on https://developers.egnyte.com/member/register to get API key for your Egnyte account
|
|
32
|
+
- An Egnyte domain with files to test
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
# Installing Prerequisites
|
|
36
|
+
|
|
37
|
+
## π§ Installation
|
|
38
|
+
|
|
39
|
+
### 1. Clone the Repository
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
git clone https://github.com/egnyte/egnyte-mcp-server.git
|
|
43
|
+
cd egnyte-mcp-server
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### 2. Install `uv` (Python environment & dependency manager)
|
|
47
|
+
|
|
48
|
+
**Mac/Linux:**
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**Windows (PowerShell):**
|
|
55
|
+
|
|
56
|
+
```powershell
|
|
57
|
+
irm https://astral.sh/uv/install.ps1 | iex
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### 3. Install Egnyte SDK
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
uv pip install egnyte
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
π [Egnyte SDK Documentation](https://developers.egnyte.com/egnyte_sdk#python)
|
|
67
|
+
π [Egnyte SDK GitHub](https://github.com/egnyte/python-egnyte)
|
|
68
|
+
|
|
69
|
+
### 4. Setting up Environment Variables
|
|
70
|
+
1. **Create a `.env` File**
|
|
71
|
+
|
|
72
|
+
Create a `.env` file inside the root directory with the following content:
|
|
73
|
+
```
|
|
74
|
+
DOMAIN=your-egnyte-domain.egnyte.com
|
|
75
|
+
ACCESS_TOKEN=your-access-token-here
|
|
76
|
+
```
|
|
77
|
+
2. **Update with Your Credentials**
|
|
78
|
+
|
|
79
|
+
- Replace `your-egnyte-domain.egnyte.com` with your actual Egnyte domain.
|
|
80
|
+
- Replace `your-access-token-here` with your actual Egnyte API access token.
|
|
81
|
+
|
|
82
|
+
This `.env` file is necessary for the server to authenticate and connect securely to your Egnyte domain.
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
# π Running the MCP Server
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
uv run server.py --python 3.11
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
This will start the MCP server locally and make the tools available to MCP-compliant clients.
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
# β‘ Setting up MCP Clients
|
|
95
|
+
|
|
96
|
+
This is a sample MCP (Model Context Protocol) client that connects to a locally running MCP server using `fastmcp`.
|
|
97
|
+
It uses **Python Stdio Transport** to communicate with the server and call specific tools by name.
|
|
98
|
+
|
|
99
|
+
## How it works
|
|
100
|
+
|
|
101
|
+
- Connects to the MCP server (`server.py`) via Python Stdio.
|
|
102
|
+
- Lists available tools exposed by the server.
|
|
103
|
+
- Calls a specific tool by its name, with provided arguments.
|
|
104
|
+
- The response is returned based on the tool execution.
|
|
105
|
+
|
|
106
|
+
## Prerequisites
|
|
107
|
+
|
|
108
|
+
- Python 3.11+
|
|
109
|
+
- `fastmcp` library installed:
|
|
110
|
+
```bash
|
|
111
|
+
uv pip install fastmcp
|
|
112
|
+
- MCP server (`server.py`) running locally
|
|
113
|
+
- `.env` file configured
|
|
114
|
+
|
|
115
|
+
## Usage
|
|
116
|
+
|
|
117
|
+
1. **Ensure the MCP server is running** first.
|
|
118
|
+
2. **Run the client** using the command:
|
|
119
|
+
```bash
|
|
120
|
+
python client.py
|
|
121
|
+
|
|
122
|
+
### Cursor IDE Setup
|
|
123
|
+
|
|
124
|
+
1. Open Cursor β Settings β **MCP**
|
|
125
|
+
2. Click **"Add new global MCP server"**
|
|
126
|
+
3. Add the following configuration:
|
|
127
|
+
|
|
128
|
+
```json
|
|
129
|
+
{
|
|
130
|
+
"mcpServers": {
|
|
131
|
+
"Egnyte Document Retriever": {
|
|
132
|
+
"command": "uv",
|
|
133
|
+
"args": [
|
|
134
|
+
"--directory",
|
|
135
|
+
"/path/to/egnyte-mcp-server",
|
|
136
|
+
"run",
|
|
137
|
+
"server.py"
|
|
138
|
+
]
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
```
|
|
143
|
+
β
Replace `/path/to/egnyte-mcp-server` with your actual directory path.
|
|
144
|
+
|
|
145
|
+
4. Save and enable the server in the MCP settings.
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## πΌοΈ Example Screenshots
|
|
150
|
+
|
|
151
|
+
### Cursor MCP Server Configuration
|
|
152
|
+
|
|
153
|
+

|
|
154
|
+
|
|
155
|
+
### Cursor MCP Query in Action
|
|
156
|
+
|
|
157
|
+

|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
### Claude Desktop Setup
|
|
162
|
+
|
|
163
|
+
To connect Egnyteβs MCP server to Claude Desktop:
|
|
164
|
+
|
|
165
|
+
1. Launch Claude Desktop and open MCP tool configuration
|
|
166
|
+
2. Go to Settings β MCP Tools β Add New Server
|
|
167
|
+
3. Add the following configuration:
|
|
168
|
+
|
|
169
|
+
```json
|
|
170
|
+
{
|
|
171
|
+
"mcpServers": {
|
|
172
|
+
"egnyte": {
|
|
173
|
+
"command": "python3",
|
|
174
|
+
"args": ["server.py"],
|
|
175
|
+
"cwd": "/Users/yourname/path/to/egnyte-mcp-server",
|
|
176
|
+
"env": {
|
|
177
|
+
"DOMAIN": "your-egnyte-domain.egnyte.com",
|
|
178
|
+
"ACCESS_TOKEN": "your-access-token"
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
```
|
|
184
|
+
β
Replace ` /Users/yourname/path/to/egnyte-mcp-server ` with your actual directory path.
|
|
185
|
+
|
|
186
|
+
4. Save and Start - Claude should detect the server, list search_for_document_by_name under βAvailable MCP tools,β and be able to call it with filenames.
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
## πΌοΈ Example Screenshots
|
|
190
|
+
|
|
191
|
+
### Claude MCP Server Configuration
|
|
192
|
+
|
|
193
|
+

|
|
194
|
+
|
|
195
|
+
### Claude MCP Query in Action
|
|
196
|
+
|
|
197
|
+

|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
## π Roadmap
|
|
202
|
+
|
|
203
|
+
- β
File search by name
|
|
204
|
+
- β
Retrieve relevant documents
|
|
205
|
+
- π Hybrid search (structured + content)
|
|
206
|
+
- π Document text extraction
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
#Helping with development
|
|
211
|
+
|
|
212
|
+
Please report any problems you find to api-support@egnyte.com or pint@egnyte.com
|
|
213
|
+
|
|
214
|
+
If you'd like to fix something yourself, please fork this repository, commit the fixes and updates to tests, then set up a pull request with information what you're fixing.
|
|
215
|
+
|
|
216
|
+
## π Helpful Links
|
|
217
|
+
|
|
218
|
+
- [Egnyte Developer Portal](https://developers.egnyte.com/)
|
|
219
|
+
- [Egnyte Python SDK](https://github.com/egnyte/python-egnyte)
|
|
220
|
+
- [Cursor MCP Documentation](https://docs.cursor.com/context/model-context-protocol)
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: iflow-mcp_egnyte-server
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Add your description here
|
|
5
|
+
Requires-Python: >=3.11
|
|
6
|
+
Description-Content-Type: text/markdown
|
|
7
|
+
Requires-Dist: httpx>=0.28.1
|
|
8
|
+
Requires-Dist: langchain-core>=0.3.51
|
|
9
|
+
Requires-Dist: mcp[cli]>=1.6.0
|
|
10
|
+
Requires-Dist: requests>=2.32.3
|
|
11
|
+
Requires-Dist: egnyte>=0.5.3
|
|
12
|
+
|
|
13
|
+
# Egnyte MCP Server
|
|
14
|
+
|
|
15
|
+
An **MCP (Model Context Protocol)** server that connects to your Egnyte domain and exposes document search and retrieval functionality for use in **AI agents** like Cursor, Claude, or OpenAI.
|
|
16
|
+
|
|
17
|
+
This server uses **Egnyteβs public APIs and Python SDK** to support secure, real-time access to your Egnyte content, enabling smart AI-driven workflows while respecting existing permissions.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## π About
|
|
22
|
+
|
|
23
|
+
Model Context Protocol (MCP) is a framework to help AI agents securely query external systems for real-time context.
|
|
24
|
+
The **Egnyte MCP Server** allows agents to:
|
|
25
|
+
|
|
26
|
+
- Search for documents by name
|
|
27
|
+
- Retrieve relevant documents from Egnyte
|
|
28
|
+
- Seamlessly integrate enterprise content into generative AI workflows
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## π οΈ Tools Implemented
|
|
33
|
+
|
|
34
|
+
| Tool Name | Description |
|
|
35
|
+
|-----------------------------------|-----------------------------------------------------------------------------|
|
|
36
|
+
| `search_for_document_by_name` | Searches for a document in your Egnyte domain using its filename. |
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## π Requirements
|
|
41
|
+
|
|
42
|
+
- Python 3.11+
|
|
43
|
+
- Egnyte API access token - Register on https://developers.egnyte.com/member/register to get API key for your Egnyte account
|
|
44
|
+
- An Egnyte domain with files to test
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
# Installing Prerequisites
|
|
48
|
+
|
|
49
|
+
## π§ Installation
|
|
50
|
+
|
|
51
|
+
### 1. Clone the Repository
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
git clone https://github.com/egnyte/egnyte-mcp-server.git
|
|
55
|
+
cd egnyte-mcp-server
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### 2. Install `uv` (Python environment & dependency manager)
|
|
59
|
+
|
|
60
|
+
**Mac/Linux:**
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**Windows (PowerShell):**
|
|
67
|
+
|
|
68
|
+
```powershell
|
|
69
|
+
irm https://astral.sh/uv/install.ps1 | iex
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### 3. Install Egnyte SDK
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
uv pip install egnyte
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
π [Egnyte SDK Documentation](https://developers.egnyte.com/egnyte_sdk#python)
|
|
79
|
+
π [Egnyte SDK GitHub](https://github.com/egnyte/python-egnyte)
|
|
80
|
+
|
|
81
|
+
### 4. Setting up Environment Variables
|
|
82
|
+
1. **Create a `.env` File**
|
|
83
|
+
|
|
84
|
+
Create a `.env` file inside the root directory with the following content:
|
|
85
|
+
```
|
|
86
|
+
DOMAIN=your-egnyte-domain.egnyte.com
|
|
87
|
+
ACCESS_TOKEN=your-access-token-here
|
|
88
|
+
```
|
|
89
|
+
2. **Update with Your Credentials**
|
|
90
|
+
|
|
91
|
+
- Replace `your-egnyte-domain.egnyte.com` with your actual Egnyte domain.
|
|
92
|
+
- Replace `your-access-token-here` with your actual Egnyte API access token.
|
|
93
|
+
|
|
94
|
+
This `.env` file is necessary for the server to authenticate and connect securely to your Egnyte domain.
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
# π Running the MCP Server
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
uv run server.py --python 3.11
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
This will start the MCP server locally and make the tools available to MCP-compliant clients.
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
# β‘ Setting up MCP Clients
|
|
107
|
+
|
|
108
|
+
This is a sample MCP (Model Context Protocol) client that connects to a locally running MCP server using `fastmcp`.
|
|
109
|
+
It uses **Python Stdio Transport** to communicate with the server and call specific tools by name.
|
|
110
|
+
|
|
111
|
+
## How it works
|
|
112
|
+
|
|
113
|
+
- Connects to the MCP server (`server.py`) via Python Stdio.
|
|
114
|
+
- Lists available tools exposed by the server.
|
|
115
|
+
- Calls a specific tool by its name, with provided arguments.
|
|
116
|
+
- The response is returned based on the tool execution.
|
|
117
|
+
|
|
118
|
+
## Prerequisites
|
|
119
|
+
|
|
120
|
+
- Python 3.11+
|
|
121
|
+
- `fastmcp` library installed:
|
|
122
|
+
```bash
|
|
123
|
+
uv pip install fastmcp
|
|
124
|
+
- MCP server (`server.py`) running locally
|
|
125
|
+
- `.env` file configured
|
|
126
|
+
|
|
127
|
+
## Usage
|
|
128
|
+
|
|
129
|
+
1. **Ensure the MCP server is running** first.
|
|
130
|
+
2. **Run the client** using the command:
|
|
131
|
+
```bash
|
|
132
|
+
python client.py
|
|
133
|
+
|
|
134
|
+
### Cursor IDE Setup
|
|
135
|
+
|
|
136
|
+
1. Open Cursor β Settings β **MCP**
|
|
137
|
+
2. Click **"Add new global MCP server"**
|
|
138
|
+
3. Add the following configuration:
|
|
139
|
+
|
|
140
|
+
```json
|
|
141
|
+
{
|
|
142
|
+
"mcpServers": {
|
|
143
|
+
"Egnyte Document Retriever": {
|
|
144
|
+
"command": "uv",
|
|
145
|
+
"args": [
|
|
146
|
+
"--directory",
|
|
147
|
+
"/path/to/egnyte-mcp-server",
|
|
148
|
+
"run",
|
|
149
|
+
"server.py"
|
|
150
|
+
]
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
```
|
|
155
|
+
β
Replace `/path/to/egnyte-mcp-server` with your actual directory path.
|
|
156
|
+
|
|
157
|
+
4. Save and enable the server in the MCP settings.
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## πΌοΈ Example Screenshots
|
|
162
|
+
|
|
163
|
+
### Cursor MCP Server Configuration
|
|
164
|
+
|
|
165
|
+

|
|
166
|
+
|
|
167
|
+
### Cursor MCP Query in Action
|
|
168
|
+
|
|
169
|
+

|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
### Claude Desktop Setup
|
|
174
|
+
|
|
175
|
+
To connect Egnyteβs MCP server to Claude Desktop:
|
|
176
|
+
|
|
177
|
+
1. Launch Claude Desktop and open MCP tool configuration
|
|
178
|
+
2. Go to Settings β MCP Tools β Add New Server
|
|
179
|
+
3. Add the following configuration:
|
|
180
|
+
|
|
181
|
+
```json
|
|
182
|
+
{
|
|
183
|
+
"mcpServers": {
|
|
184
|
+
"egnyte": {
|
|
185
|
+
"command": "python3",
|
|
186
|
+
"args": ["server.py"],
|
|
187
|
+
"cwd": "/Users/yourname/path/to/egnyte-mcp-server",
|
|
188
|
+
"env": {
|
|
189
|
+
"DOMAIN": "your-egnyte-domain.egnyte.com",
|
|
190
|
+
"ACCESS_TOKEN": "your-access-token"
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
```
|
|
196
|
+
β
Replace ` /Users/yourname/path/to/egnyte-mcp-server ` with your actual directory path.
|
|
197
|
+
|
|
198
|
+
4. Save and Start - Claude should detect the server, list search_for_document_by_name under βAvailable MCP tools,β and be able to call it with filenames.
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
## πΌοΈ Example Screenshots
|
|
202
|
+
|
|
203
|
+
### Claude MCP Server Configuration
|
|
204
|
+
|
|
205
|
+

|
|
206
|
+
|
|
207
|
+
### Claude MCP Query in Action
|
|
208
|
+
|
|
209
|
+

|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
## π Roadmap
|
|
214
|
+
|
|
215
|
+
- β
File search by name
|
|
216
|
+
- β
Retrieve relevant documents
|
|
217
|
+
- π Hybrid search (structured + content)
|
|
218
|
+
- π Document text extraction
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
#Helping with development
|
|
223
|
+
|
|
224
|
+
Please report any problems you find to api-support@egnyte.com or pint@egnyte.com
|
|
225
|
+
|
|
226
|
+
If you'd like to fix something yourself, please fork this repository, commit the fixes and updates to tests, then set up a pull request with information what you're fixing.
|
|
227
|
+
|
|
228
|
+
## π Helpful Links
|
|
229
|
+
|
|
230
|
+
- [Egnyte Developer Portal](https://developers.egnyte.com/)
|
|
231
|
+
- [Egnyte Python SDK](https://github.com/egnyte/python-egnyte)
|
|
232
|
+
- [Cursor MCP Documentation](https://docs.cursor.com/context/model-context-protocol)
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
README.md
|
|
2
|
+
pyproject.toml
|
|
3
|
+
iflow_mcp_egnyte_server.egg-info/PKG-INFO
|
|
4
|
+
iflow_mcp_egnyte_server.egg-info/SOURCES.txt
|
|
5
|
+
iflow_mcp_egnyte_server.egg-info/dependency_links.txt
|
|
6
|
+
iflow_mcp_egnyte_server.egg-info/entry_points.txt
|
|
7
|
+
iflow_mcp_egnyte_server.egg-info/requires.txt
|
|
8
|
+
iflow_mcp_egnyte_server.egg-info/top_level.txt
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
images
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "iflow-mcp_egnyte-server"
|
|
3
|
+
version = "0.1.0"
|
|
4
|
+
description = "Add your description here"
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
requires-python = ">=3.11"
|
|
7
|
+
dependencies = [
|
|
8
|
+
"httpx>=0.28.1",
|
|
9
|
+
"langchain-core>=0.3.51",
|
|
10
|
+
"mcp[cli]>=1.6.0",
|
|
11
|
+
"requests>=2.32.3",
|
|
12
|
+
"egnyte>=0.5.3",
|
|
13
|
+
]
|
|
14
|
+
|
|
15
|
+
[project.scripts]
|
|
16
|
+
server = "server:main"
|