mseep-odoo-mcp 0.0.4__tar.gz → 0.0.5__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.
- mseep_odoo_mcp-0.0.5/PKG-INFO +32 -0
- mseep_odoo_mcp-0.0.5/README.md +1 -0
- {mseep_odoo_mcp-0.0.4 → mseep_odoo_mcp-0.0.5}/pyproject.toml +1 -1
- mseep_odoo_mcp-0.0.5/src/mseep_odoo_mcp.egg-info/PKG-INFO +32 -0
- mseep_odoo_mcp-0.0.4/PKG-INFO +0 -224
- mseep_odoo_mcp-0.0.4/README.md +0 -193
- mseep_odoo_mcp-0.0.4/src/mseep_odoo_mcp.egg-info/PKG-INFO +0 -224
- {mseep_odoo_mcp-0.0.4 → mseep_odoo_mcp-0.0.5}/LICENSE +0 -0
- {mseep_odoo_mcp-0.0.4 → mseep_odoo_mcp-0.0.5}/setup.cfg +0 -0
- {mseep_odoo_mcp-0.0.4 → mseep_odoo_mcp-0.0.5}/setup.py +0 -0
- {mseep_odoo_mcp-0.0.4 → mseep_odoo_mcp-0.0.5}/src/mseep_odoo_mcp.egg-info/SOURCES.txt +0 -0
- {mseep_odoo_mcp-0.0.4 → mseep_odoo_mcp-0.0.5}/src/mseep_odoo_mcp.egg-info/dependency_links.txt +0 -0
- {mseep_odoo_mcp-0.0.4 → mseep_odoo_mcp-0.0.5}/src/mseep_odoo_mcp.egg-info/entry_points.txt +0 -0
- {mseep_odoo_mcp-0.0.4 → mseep_odoo_mcp-0.0.5}/src/mseep_odoo_mcp.egg-info/requires.txt +0 -0
- {mseep_odoo_mcp-0.0.4 → mseep_odoo_mcp-0.0.5}/src/mseep_odoo_mcp.egg-info/top_level.txt +0 -0
- {mseep_odoo_mcp-0.0.4 → mseep_odoo_mcp-0.0.5}/src/odoo_mcp/__init__.py +0 -0
- {mseep_odoo_mcp-0.0.4 → mseep_odoo_mcp-0.0.5}/src/odoo_mcp/__main__.py +0 -0
- {mseep_odoo_mcp-0.0.4 → mseep_odoo_mcp-0.0.5}/src/odoo_mcp/odoo_client.py +0 -0
- {mseep_odoo_mcp-0.0.4 → mseep_odoo_mcp-0.0.5}/src/odoo_mcp/server.py +0 -0
@@ -0,0 +1,32 @@
|
|
1
|
+
Metadata-Version: 2.4
|
2
|
+
Name: mseep-odoo-mcp
|
3
|
+
Version: 0.0.5
|
4
|
+
Summary: MCP Server for Odoo Integration
|
5
|
+
Home-page:
|
6
|
+
Author: mseep
|
7
|
+
Author-email: mseep <support@skydeck.ai>
|
8
|
+
Maintainer-email: mseep <support@skydeck.ai>
|
9
|
+
License: MIT
|
10
|
+
Keywords: odoo,mcp,server
|
11
|
+
Classifier: License :: OSI Approved :: MIT License
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
13
|
+
Classifier: Programming Language :: Python :: 3.10
|
14
|
+
Classifier: Operating System :: OS Independent
|
15
|
+
Requires-Python: >=3.6
|
16
|
+
Description-Content-Type: text/markdown
|
17
|
+
License-File: LICENSE
|
18
|
+
Requires-Dist: mcp>=0.1.1
|
19
|
+
Requires-Dist: requests>=2.31.0
|
20
|
+
Requires-Dist: pypi-xmlrpc==2020.12.3
|
21
|
+
Provides-Extra: dev
|
22
|
+
Requires-Dist: black; extra == "dev"
|
23
|
+
Requires-Dist: isort; extra == "dev"
|
24
|
+
Requires-Dist: mypy; extra == "dev"
|
25
|
+
Requires-Dist: ruff; extra == "dev"
|
26
|
+
Requires-Dist: build; extra == "dev"
|
27
|
+
Requires-Dist: twine; extra == "dev"
|
28
|
+
Dynamic: author
|
29
|
+
Dynamic: license-file
|
30
|
+
Dynamic: requires-python
|
31
|
+
|
32
|
+
# Package managed by MseeP.ai
|
@@ -0,0 +1 @@
|
|
1
|
+
# Package managed by MseeP.ai
|
@@ -0,0 +1,32 @@
|
|
1
|
+
Metadata-Version: 2.4
|
2
|
+
Name: mseep-odoo-mcp
|
3
|
+
Version: 0.0.5
|
4
|
+
Summary: MCP Server for Odoo Integration
|
5
|
+
Home-page:
|
6
|
+
Author: mseep
|
7
|
+
Author-email: mseep <support@skydeck.ai>
|
8
|
+
Maintainer-email: mseep <support@skydeck.ai>
|
9
|
+
License: MIT
|
10
|
+
Keywords: odoo,mcp,server
|
11
|
+
Classifier: License :: OSI Approved :: MIT License
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
13
|
+
Classifier: Programming Language :: Python :: 3.10
|
14
|
+
Classifier: Operating System :: OS Independent
|
15
|
+
Requires-Python: >=3.6
|
16
|
+
Description-Content-Type: text/markdown
|
17
|
+
License-File: LICENSE
|
18
|
+
Requires-Dist: mcp>=0.1.1
|
19
|
+
Requires-Dist: requests>=2.31.0
|
20
|
+
Requires-Dist: pypi-xmlrpc==2020.12.3
|
21
|
+
Provides-Extra: dev
|
22
|
+
Requires-Dist: black; extra == "dev"
|
23
|
+
Requires-Dist: isort; extra == "dev"
|
24
|
+
Requires-Dist: mypy; extra == "dev"
|
25
|
+
Requires-Dist: ruff; extra == "dev"
|
26
|
+
Requires-Dist: build; extra == "dev"
|
27
|
+
Requires-Dist: twine; extra == "dev"
|
28
|
+
Dynamic: author
|
29
|
+
Dynamic: license-file
|
30
|
+
Dynamic: requires-python
|
31
|
+
|
32
|
+
# Package managed by MseeP.ai
|
mseep_odoo_mcp-0.0.4/PKG-INFO
DELETED
@@ -1,224 +0,0 @@
|
|
1
|
-
Metadata-Version: 2.4
|
2
|
-
Name: mseep-odoo-mcp
|
3
|
-
Version: 0.0.4
|
4
|
-
Summary: MCP Server for Odoo Integration
|
5
|
-
Home-page:
|
6
|
-
Author: mseep
|
7
|
-
Author-email: mseep <support@skydeck.ai>
|
8
|
-
Maintainer-email: mseep <support@skydeck.ai>
|
9
|
-
License: MIT
|
10
|
-
Keywords: odoo,mcp,server
|
11
|
-
Classifier: License :: OSI Approved :: MIT License
|
12
|
-
Classifier: Programming Language :: Python :: 3
|
13
|
-
Classifier: Programming Language :: Python :: 3.10
|
14
|
-
Classifier: Operating System :: OS Independent
|
15
|
-
Requires-Python: >=3.6
|
16
|
-
Description-Content-Type: text/markdown
|
17
|
-
License-File: LICENSE
|
18
|
-
Requires-Dist: mcp>=0.1.1
|
19
|
-
Requires-Dist: requests>=2.31.0
|
20
|
-
Requires-Dist: pypi-xmlrpc==2020.12.3
|
21
|
-
Provides-Extra: dev
|
22
|
-
Requires-Dist: black; extra == "dev"
|
23
|
-
Requires-Dist: isort; extra == "dev"
|
24
|
-
Requires-Dist: mypy; extra == "dev"
|
25
|
-
Requires-Dist: ruff; extra == "dev"
|
26
|
-
Requires-Dist: build; extra == "dev"
|
27
|
-
Requires-Dist: twine; extra == "dev"
|
28
|
-
Dynamic: author
|
29
|
-
Dynamic: license-file
|
30
|
-
Dynamic: requires-python
|
31
|
-
|
32
|
-
# Odoo MCP Server
|
33
|
-
|
34
|
-
An MCP server implementation that integrates with Odoo ERP systems, enabling AI assistants to interact with Odoo data and functionality through the Model Context Protocol.
|
35
|
-
|
36
|
-
## Features
|
37
|
-
|
38
|
-
* **Comprehensive Odoo Integration**: Full access to Odoo models, records, and methods
|
39
|
-
* **XML-RPC Communication**: Secure connection to Odoo instances via XML-RPC
|
40
|
-
* **Flexible Configuration**: Support for config files and environment variables
|
41
|
-
* **Resource Pattern System**: URI-based access to Odoo data structures
|
42
|
-
* **Error Handling**: Clear error messages for common Odoo API issues
|
43
|
-
* **Stateless Operations**: Clean request/response cycle for reliable integration
|
44
|
-
|
45
|
-
## Tools
|
46
|
-
|
47
|
-
* **execute_method**
|
48
|
-
* Execute a custom method on an Odoo model
|
49
|
-
* Inputs:
|
50
|
-
* `model` (string): The model name (e.g., 'res.partner')
|
51
|
-
* `method` (string): Method name to execute
|
52
|
-
* `args` (optional array): Positional arguments
|
53
|
-
* `kwargs` (optional object): Keyword arguments
|
54
|
-
* Returns: Dictionary with the method result and success indicator
|
55
|
-
|
56
|
-
* **search_employee**
|
57
|
-
* Search for employees by name
|
58
|
-
* Inputs:
|
59
|
-
* `name` (string): The name (or part of the name) to search for
|
60
|
-
* `limit` (optional number): The maximum number of results to return (default 20)
|
61
|
-
* Returns: Object containing success indicator, list of matching employee names and IDs, and any error message
|
62
|
-
|
63
|
-
* **search_holidays**
|
64
|
-
* Searches for holidays within a specified date range
|
65
|
-
* Inputs:
|
66
|
-
* `start_date` (string): Start date in YYYY-MM-DD format
|
67
|
-
* `end_date` (string): End date in YYYY-MM-DD format
|
68
|
-
* `employee_id` (optional number): Optional employee ID to filter holidays
|
69
|
-
* Returns: Object containing success indicator, list of holidays found, and any error message
|
70
|
-
|
71
|
-
## Resources
|
72
|
-
|
73
|
-
* **odoo://models**
|
74
|
-
* Lists all available models in the Odoo system
|
75
|
-
* Returns: JSON array of model information
|
76
|
-
|
77
|
-
* **odoo://model/{model_name}**
|
78
|
-
* Get information about a specific model including fields
|
79
|
-
* Example: `odoo://model/res.partner`
|
80
|
-
* Returns: JSON object with model metadata and field definitions
|
81
|
-
|
82
|
-
* **odoo://record/{model_name}/{record_id}**
|
83
|
-
* Get a specific record by ID
|
84
|
-
* Example: `odoo://record/res.partner/1`
|
85
|
-
* Returns: JSON object with record data
|
86
|
-
|
87
|
-
* **odoo://search/{model_name}/{domain}**
|
88
|
-
* Search for records that match a domain
|
89
|
-
* Example: `odoo://search/res.partner/[["is_company","=",true]]`
|
90
|
-
* Returns: JSON array of matching records (limited to 10 by default)
|
91
|
-
|
92
|
-
## Configuration
|
93
|
-
|
94
|
-
### Odoo Connection Setup
|
95
|
-
|
96
|
-
1. Create a configuration file named `odoo_config.json`:
|
97
|
-
|
98
|
-
```json
|
99
|
-
{
|
100
|
-
"url": "https://your-odoo-instance.com",
|
101
|
-
"db": "your-database-name",
|
102
|
-
"username": "your-username",
|
103
|
-
"password": "your-password-or-api-key"
|
104
|
-
}
|
105
|
-
```
|
106
|
-
|
107
|
-
2. Alternatively, use environment variables:
|
108
|
-
* `ODOO_URL`: Your Odoo server URL
|
109
|
-
* `ODOO_DB`: Database name
|
110
|
-
* `ODOO_USERNAME`: Login username
|
111
|
-
* `ODOO_PASSWORD`: Password or API key
|
112
|
-
* `ODOO_TIMEOUT`: Connection timeout in seconds (default: 30)
|
113
|
-
* `ODOO_VERIFY_SSL`: Whether to verify SSL certificates (default: true)
|
114
|
-
* `HTTP_PROXY`: Force the ODOO connection to use an HTTP proxy
|
115
|
-
|
116
|
-
### Usage with Claude Desktop
|
117
|
-
|
118
|
-
Add this to your `claude_desktop_config.json`:
|
119
|
-
|
120
|
-
```json
|
121
|
-
{
|
122
|
-
"mcpServers": {
|
123
|
-
"odoo": {
|
124
|
-
"command": "python",
|
125
|
-
"args": [
|
126
|
-
"-m",
|
127
|
-
"odoo_mcp"
|
128
|
-
],
|
129
|
-
"env": {
|
130
|
-
"ODOO_URL": "https://your-odoo-instance.com",
|
131
|
-
"ODOO_DB": "your-database-name",
|
132
|
-
"ODOO_USERNAME": "your-username",
|
133
|
-
"ODOO_PASSWORD": "your-password-or-api-key"
|
134
|
-
}
|
135
|
-
}
|
136
|
-
}
|
137
|
-
}
|
138
|
-
```
|
139
|
-
|
140
|
-
### Docker
|
141
|
-
|
142
|
-
```json
|
143
|
-
{
|
144
|
-
"mcpServers": {
|
145
|
-
"odoo": {
|
146
|
-
"command": "docker",
|
147
|
-
"args": [
|
148
|
-
"run",
|
149
|
-
"-i",
|
150
|
-
"--rm",
|
151
|
-
"-e",
|
152
|
-
"ODOO_URL",
|
153
|
-
"-e",
|
154
|
-
"ODOO_DB",
|
155
|
-
"-e",
|
156
|
-
"ODOO_USERNAME",
|
157
|
-
"-e",
|
158
|
-
"ODOO_PASSWORD",
|
159
|
-
"mcp/odoo"
|
160
|
-
],
|
161
|
-
"env": {
|
162
|
-
"ODOO_URL": "https://your-odoo-instance.com",
|
163
|
-
"ODOO_DB": "your-database-name",
|
164
|
-
"ODOO_USERNAME": "your-username",
|
165
|
-
"ODOO_PASSWORD": "your-password-or-api-key"
|
166
|
-
}
|
167
|
-
}
|
168
|
-
}
|
169
|
-
}
|
170
|
-
```
|
171
|
-
|
172
|
-
## Installation
|
173
|
-
|
174
|
-
### Python Package
|
175
|
-
|
176
|
-
```bash
|
177
|
-
pip install odoo-mcp
|
178
|
-
```
|
179
|
-
|
180
|
-
### Running the Server
|
181
|
-
|
182
|
-
```bash
|
183
|
-
# Using the installed package
|
184
|
-
odoo-mcp
|
185
|
-
|
186
|
-
# Using the MCP development tools
|
187
|
-
mcp dev odoo_mcp/server.py
|
188
|
-
|
189
|
-
# With additional dependencies
|
190
|
-
mcp dev odoo_mcp/server.py --with pandas --with numpy
|
191
|
-
|
192
|
-
# Mount local code for development
|
193
|
-
mcp dev odoo_mcp/server.py --with-editable .
|
194
|
-
```
|
195
|
-
|
196
|
-
## Build
|
197
|
-
|
198
|
-
Docker build:
|
199
|
-
|
200
|
-
```bash
|
201
|
-
docker build -t mcp/odoo:latest -f Dockerfile .
|
202
|
-
```
|
203
|
-
|
204
|
-
## Parameter Formatting Guidelines
|
205
|
-
|
206
|
-
When using the MCP tools for Odoo, pay attention to these parameter formatting guidelines:
|
207
|
-
|
208
|
-
1. **Domain Parameter**:
|
209
|
-
* The following domain formats are supported:
|
210
|
-
* List format: `[["field", "operator", value], ...]`
|
211
|
-
* Object format: `{"conditions": [{"field": "...", "operator": "...", "value": "..."}]}`
|
212
|
-
* JSON string of either format
|
213
|
-
* Examples:
|
214
|
-
* List format: `[["is_company", "=", true]]`
|
215
|
-
* Object format: `{"conditions": [{"field": "date_order", "operator": ">=", "value": "2025-03-01"}]}`
|
216
|
-
* Multiple conditions: `[["date_order", ">=", "2025-03-01"], ["date_order", "<=", "2025-03-31"]]`
|
217
|
-
|
218
|
-
2. **Fields Parameter**:
|
219
|
-
* Should be an array of field names: `["name", "email", "phone"]`
|
220
|
-
* The server will try to parse string inputs as JSON
|
221
|
-
|
222
|
-
## License
|
223
|
-
|
224
|
-
This MCP server is licensed under the MIT License.
|
mseep_odoo_mcp-0.0.4/README.md
DELETED
@@ -1,193 +0,0 @@
|
|
1
|
-
# Odoo MCP Server
|
2
|
-
|
3
|
-
An MCP server implementation that integrates with Odoo ERP systems, enabling AI assistants to interact with Odoo data and functionality through the Model Context Protocol.
|
4
|
-
|
5
|
-
## Features
|
6
|
-
|
7
|
-
* **Comprehensive Odoo Integration**: Full access to Odoo models, records, and methods
|
8
|
-
* **XML-RPC Communication**: Secure connection to Odoo instances via XML-RPC
|
9
|
-
* **Flexible Configuration**: Support for config files and environment variables
|
10
|
-
* **Resource Pattern System**: URI-based access to Odoo data structures
|
11
|
-
* **Error Handling**: Clear error messages for common Odoo API issues
|
12
|
-
* **Stateless Operations**: Clean request/response cycle for reliable integration
|
13
|
-
|
14
|
-
## Tools
|
15
|
-
|
16
|
-
* **execute_method**
|
17
|
-
* Execute a custom method on an Odoo model
|
18
|
-
* Inputs:
|
19
|
-
* `model` (string): The model name (e.g., 'res.partner')
|
20
|
-
* `method` (string): Method name to execute
|
21
|
-
* `args` (optional array): Positional arguments
|
22
|
-
* `kwargs` (optional object): Keyword arguments
|
23
|
-
* Returns: Dictionary with the method result and success indicator
|
24
|
-
|
25
|
-
* **search_employee**
|
26
|
-
* Search for employees by name
|
27
|
-
* Inputs:
|
28
|
-
* `name` (string): The name (or part of the name) to search for
|
29
|
-
* `limit` (optional number): The maximum number of results to return (default 20)
|
30
|
-
* Returns: Object containing success indicator, list of matching employee names and IDs, and any error message
|
31
|
-
|
32
|
-
* **search_holidays**
|
33
|
-
* Searches for holidays within a specified date range
|
34
|
-
* Inputs:
|
35
|
-
* `start_date` (string): Start date in YYYY-MM-DD format
|
36
|
-
* `end_date` (string): End date in YYYY-MM-DD format
|
37
|
-
* `employee_id` (optional number): Optional employee ID to filter holidays
|
38
|
-
* Returns: Object containing success indicator, list of holidays found, and any error message
|
39
|
-
|
40
|
-
## Resources
|
41
|
-
|
42
|
-
* **odoo://models**
|
43
|
-
* Lists all available models in the Odoo system
|
44
|
-
* Returns: JSON array of model information
|
45
|
-
|
46
|
-
* **odoo://model/{model_name}**
|
47
|
-
* Get information about a specific model including fields
|
48
|
-
* Example: `odoo://model/res.partner`
|
49
|
-
* Returns: JSON object with model metadata and field definitions
|
50
|
-
|
51
|
-
* **odoo://record/{model_name}/{record_id}**
|
52
|
-
* Get a specific record by ID
|
53
|
-
* Example: `odoo://record/res.partner/1`
|
54
|
-
* Returns: JSON object with record data
|
55
|
-
|
56
|
-
* **odoo://search/{model_name}/{domain}**
|
57
|
-
* Search for records that match a domain
|
58
|
-
* Example: `odoo://search/res.partner/[["is_company","=",true]]`
|
59
|
-
* Returns: JSON array of matching records (limited to 10 by default)
|
60
|
-
|
61
|
-
## Configuration
|
62
|
-
|
63
|
-
### Odoo Connection Setup
|
64
|
-
|
65
|
-
1. Create a configuration file named `odoo_config.json`:
|
66
|
-
|
67
|
-
```json
|
68
|
-
{
|
69
|
-
"url": "https://your-odoo-instance.com",
|
70
|
-
"db": "your-database-name",
|
71
|
-
"username": "your-username",
|
72
|
-
"password": "your-password-or-api-key"
|
73
|
-
}
|
74
|
-
```
|
75
|
-
|
76
|
-
2. Alternatively, use environment variables:
|
77
|
-
* `ODOO_URL`: Your Odoo server URL
|
78
|
-
* `ODOO_DB`: Database name
|
79
|
-
* `ODOO_USERNAME`: Login username
|
80
|
-
* `ODOO_PASSWORD`: Password or API key
|
81
|
-
* `ODOO_TIMEOUT`: Connection timeout in seconds (default: 30)
|
82
|
-
* `ODOO_VERIFY_SSL`: Whether to verify SSL certificates (default: true)
|
83
|
-
* `HTTP_PROXY`: Force the ODOO connection to use an HTTP proxy
|
84
|
-
|
85
|
-
### Usage with Claude Desktop
|
86
|
-
|
87
|
-
Add this to your `claude_desktop_config.json`:
|
88
|
-
|
89
|
-
```json
|
90
|
-
{
|
91
|
-
"mcpServers": {
|
92
|
-
"odoo": {
|
93
|
-
"command": "python",
|
94
|
-
"args": [
|
95
|
-
"-m",
|
96
|
-
"odoo_mcp"
|
97
|
-
],
|
98
|
-
"env": {
|
99
|
-
"ODOO_URL": "https://your-odoo-instance.com",
|
100
|
-
"ODOO_DB": "your-database-name",
|
101
|
-
"ODOO_USERNAME": "your-username",
|
102
|
-
"ODOO_PASSWORD": "your-password-or-api-key"
|
103
|
-
}
|
104
|
-
}
|
105
|
-
}
|
106
|
-
}
|
107
|
-
```
|
108
|
-
|
109
|
-
### Docker
|
110
|
-
|
111
|
-
```json
|
112
|
-
{
|
113
|
-
"mcpServers": {
|
114
|
-
"odoo": {
|
115
|
-
"command": "docker",
|
116
|
-
"args": [
|
117
|
-
"run",
|
118
|
-
"-i",
|
119
|
-
"--rm",
|
120
|
-
"-e",
|
121
|
-
"ODOO_URL",
|
122
|
-
"-e",
|
123
|
-
"ODOO_DB",
|
124
|
-
"-e",
|
125
|
-
"ODOO_USERNAME",
|
126
|
-
"-e",
|
127
|
-
"ODOO_PASSWORD",
|
128
|
-
"mcp/odoo"
|
129
|
-
],
|
130
|
-
"env": {
|
131
|
-
"ODOO_URL": "https://your-odoo-instance.com",
|
132
|
-
"ODOO_DB": "your-database-name",
|
133
|
-
"ODOO_USERNAME": "your-username",
|
134
|
-
"ODOO_PASSWORD": "your-password-or-api-key"
|
135
|
-
}
|
136
|
-
}
|
137
|
-
}
|
138
|
-
}
|
139
|
-
```
|
140
|
-
|
141
|
-
## Installation
|
142
|
-
|
143
|
-
### Python Package
|
144
|
-
|
145
|
-
```bash
|
146
|
-
pip install odoo-mcp
|
147
|
-
```
|
148
|
-
|
149
|
-
### Running the Server
|
150
|
-
|
151
|
-
```bash
|
152
|
-
# Using the installed package
|
153
|
-
odoo-mcp
|
154
|
-
|
155
|
-
# Using the MCP development tools
|
156
|
-
mcp dev odoo_mcp/server.py
|
157
|
-
|
158
|
-
# With additional dependencies
|
159
|
-
mcp dev odoo_mcp/server.py --with pandas --with numpy
|
160
|
-
|
161
|
-
# Mount local code for development
|
162
|
-
mcp dev odoo_mcp/server.py --with-editable .
|
163
|
-
```
|
164
|
-
|
165
|
-
## Build
|
166
|
-
|
167
|
-
Docker build:
|
168
|
-
|
169
|
-
```bash
|
170
|
-
docker build -t mcp/odoo:latest -f Dockerfile .
|
171
|
-
```
|
172
|
-
|
173
|
-
## Parameter Formatting Guidelines
|
174
|
-
|
175
|
-
When using the MCP tools for Odoo, pay attention to these parameter formatting guidelines:
|
176
|
-
|
177
|
-
1. **Domain Parameter**:
|
178
|
-
* The following domain formats are supported:
|
179
|
-
* List format: `[["field", "operator", value], ...]`
|
180
|
-
* Object format: `{"conditions": [{"field": "...", "operator": "...", "value": "..."}]}`
|
181
|
-
* JSON string of either format
|
182
|
-
* Examples:
|
183
|
-
* List format: `[["is_company", "=", true]]`
|
184
|
-
* Object format: `{"conditions": [{"field": "date_order", "operator": ">=", "value": "2025-03-01"}]}`
|
185
|
-
* Multiple conditions: `[["date_order", ">=", "2025-03-01"], ["date_order", "<=", "2025-03-31"]]`
|
186
|
-
|
187
|
-
2. **Fields Parameter**:
|
188
|
-
* Should be an array of field names: `["name", "email", "phone"]`
|
189
|
-
* The server will try to parse string inputs as JSON
|
190
|
-
|
191
|
-
## License
|
192
|
-
|
193
|
-
This MCP server is licensed under the MIT License.
|
@@ -1,224 +0,0 @@
|
|
1
|
-
Metadata-Version: 2.4
|
2
|
-
Name: mseep-odoo-mcp
|
3
|
-
Version: 0.0.4
|
4
|
-
Summary: MCP Server for Odoo Integration
|
5
|
-
Home-page:
|
6
|
-
Author: mseep
|
7
|
-
Author-email: mseep <support@skydeck.ai>
|
8
|
-
Maintainer-email: mseep <support@skydeck.ai>
|
9
|
-
License: MIT
|
10
|
-
Keywords: odoo,mcp,server
|
11
|
-
Classifier: License :: OSI Approved :: MIT License
|
12
|
-
Classifier: Programming Language :: Python :: 3
|
13
|
-
Classifier: Programming Language :: Python :: 3.10
|
14
|
-
Classifier: Operating System :: OS Independent
|
15
|
-
Requires-Python: >=3.6
|
16
|
-
Description-Content-Type: text/markdown
|
17
|
-
License-File: LICENSE
|
18
|
-
Requires-Dist: mcp>=0.1.1
|
19
|
-
Requires-Dist: requests>=2.31.0
|
20
|
-
Requires-Dist: pypi-xmlrpc==2020.12.3
|
21
|
-
Provides-Extra: dev
|
22
|
-
Requires-Dist: black; extra == "dev"
|
23
|
-
Requires-Dist: isort; extra == "dev"
|
24
|
-
Requires-Dist: mypy; extra == "dev"
|
25
|
-
Requires-Dist: ruff; extra == "dev"
|
26
|
-
Requires-Dist: build; extra == "dev"
|
27
|
-
Requires-Dist: twine; extra == "dev"
|
28
|
-
Dynamic: author
|
29
|
-
Dynamic: license-file
|
30
|
-
Dynamic: requires-python
|
31
|
-
|
32
|
-
# Odoo MCP Server
|
33
|
-
|
34
|
-
An MCP server implementation that integrates with Odoo ERP systems, enabling AI assistants to interact with Odoo data and functionality through the Model Context Protocol.
|
35
|
-
|
36
|
-
## Features
|
37
|
-
|
38
|
-
* **Comprehensive Odoo Integration**: Full access to Odoo models, records, and methods
|
39
|
-
* **XML-RPC Communication**: Secure connection to Odoo instances via XML-RPC
|
40
|
-
* **Flexible Configuration**: Support for config files and environment variables
|
41
|
-
* **Resource Pattern System**: URI-based access to Odoo data structures
|
42
|
-
* **Error Handling**: Clear error messages for common Odoo API issues
|
43
|
-
* **Stateless Operations**: Clean request/response cycle for reliable integration
|
44
|
-
|
45
|
-
## Tools
|
46
|
-
|
47
|
-
* **execute_method**
|
48
|
-
* Execute a custom method on an Odoo model
|
49
|
-
* Inputs:
|
50
|
-
* `model` (string): The model name (e.g., 'res.partner')
|
51
|
-
* `method` (string): Method name to execute
|
52
|
-
* `args` (optional array): Positional arguments
|
53
|
-
* `kwargs` (optional object): Keyword arguments
|
54
|
-
* Returns: Dictionary with the method result and success indicator
|
55
|
-
|
56
|
-
* **search_employee**
|
57
|
-
* Search for employees by name
|
58
|
-
* Inputs:
|
59
|
-
* `name` (string): The name (or part of the name) to search for
|
60
|
-
* `limit` (optional number): The maximum number of results to return (default 20)
|
61
|
-
* Returns: Object containing success indicator, list of matching employee names and IDs, and any error message
|
62
|
-
|
63
|
-
* **search_holidays**
|
64
|
-
* Searches for holidays within a specified date range
|
65
|
-
* Inputs:
|
66
|
-
* `start_date` (string): Start date in YYYY-MM-DD format
|
67
|
-
* `end_date` (string): End date in YYYY-MM-DD format
|
68
|
-
* `employee_id` (optional number): Optional employee ID to filter holidays
|
69
|
-
* Returns: Object containing success indicator, list of holidays found, and any error message
|
70
|
-
|
71
|
-
## Resources
|
72
|
-
|
73
|
-
* **odoo://models**
|
74
|
-
* Lists all available models in the Odoo system
|
75
|
-
* Returns: JSON array of model information
|
76
|
-
|
77
|
-
* **odoo://model/{model_name}**
|
78
|
-
* Get information about a specific model including fields
|
79
|
-
* Example: `odoo://model/res.partner`
|
80
|
-
* Returns: JSON object with model metadata and field definitions
|
81
|
-
|
82
|
-
* **odoo://record/{model_name}/{record_id}**
|
83
|
-
* Get a specific record by ID
|
84
|
-
* Example: `odoo://record/res.partner/1`
|
85
|
-
* Returns: JSON object with record data
|
86
|
-
|
87
|
-
* **odoo://search/{model_name}/{domain}**
|
88
|
-
* Search for records that match a domain
|
89
|
-
* Example: `odoo://search/res.partner/[["is_company","=",true]]`
|
90
|
-
* Returns: JSON array of matching records (limited to 10 by default)
|
91
|
-
|
92
|
-
## Configuration
|
93
|
-
|
94
|
-
### Odoo Connection Setup
|
95
|
-
|
96
|
-
1. Create a configuration file named `odoo_config.json`:
|
97
|
-
|
98
|
-
```json
|
99
|
-
{
|
100
|
-
"url": "https://your-odoo-instance.com",
|
101
|
-
"db": "your-database-name",
|
102
|
-
"username": "your-username",
|
103
|
-
"password": "your-password-or-api-key"
|
104
|
-
}
|
105
|
-
```
|
106
|
-
|
107
|
-
2. Alternatively, use environment variables:
|
108
|
-
* `ODOO_URL`: Your Odoo server URL
|
109
|
-
* `ODOO_DB`: Database name
|
110
|
-
* `ODOO_USERNAME`: Login username
|
111
|
-
* `ODOO_PASSWORD`: Password or API key
|
112
|
-
* `ODOO_TIMEOUT`: Connection timeout in seconds (default: 30)
|
113
|
-
* `ODOO_VERIFY_SSL`: Whether to verify SSL certificates (default: true)
|
114
|
-
* `HTTP_PROXY`: Force the ODOO connection to use an HTTP proxy
|
115
|
-
|
116
|
-
### Usage with Claude Desktop
|
117
|
-
|
118
|
-
Add this to your `claude_desktop_config.json`:
|
119
|
-
|
120
|
-
```json
|
121
|
-
{
|
122
|
-
"mcpServers": {
|
123
|
-
"odoo": {
|
124
|
-
"command": "python",
|
125
|
-
"args": [
|
126
|
-
"-m",
|
127
|
-
"odoo_mcp"
|
128
|
-
],
|
129
|
-
"env": {
|
130
|
-
"ODOO_URL": "https://your-odoo-instance.com",
|
131
|
-
"ODOO_DB": "your-database-name",
|
132
|
-
"ODOO_USERNAME": "your-username",
|
133
|
-
"ODOO_PASSWORD": "your-password-or-api-key"
|
134
|
-
}
|
135
|
-
}
|
136
|
-
}
|
137
|
-
}
|
138
|
-
```
|
139
|
-
|
140
|
-
### Docker
|
141
|
-
|
142
|
-
```json
|
143
|
-
{
|
144
|
-
"mcpServers": {
|
145
|
-
"odoo": {
|
146
|
-
"command": "docker",
|
147
|
-
"args": [
|
148
|
-
"run",
|
149
|
-
"-i",
|
150
|
-
"--rm",
|
151
|
-
"-e",
|
152
|
-
"ODOO_URL",
|
153
|
-
"-e",
|
154
|
-
"ODOO_DB",
|
155
|
-
"-e",
|
156
|
-
"ODOO_USERNAME",
|
157
|
-
"-e",
|
158
|
-
"ODOO_PASSWORD",
|
159
|
-
"mcp/odoo"
|
160
|
-
],
|
161
|
-
"env": {
|
162
|
-
"ODOO_URL": "https://your-odoo-instance.com",
|
163
|
-
"ODOO_DB": "your-database-name",
|
164
|
-
"ODOO_USERNAME": "your-username",
|
165
|
-
"ODOO_PASSWORD": "your-password-or-api-key"
|
166
|
-
}
|
167
|
-
}
|
168
|
-
}
|
169
|
-
}
|
170
|
-
```
|
171
|
-
|
172
|
-
## Installation
|
173
|
-
|
174
|
-
### Python Package
|
175
|
-
|
176
|
-
```bash
|
177
|
-
pip install odoo-mcp
|
178
|
-
```
|
179
|
-
|
180
|
-
### Running the Server
|
181
|
-
|
182
|
-
```bash
|
183
|
-
# Using the installed package
|
184
|
-
odoo-mcp
|
185
|
-
|
186
|
-
# Using the MCP development tools
|
187
|
-
mcp dev odoo_mcp/server.py
|
188
|
-
|
189
|
-
# With additional dependencies
|
190
|
-
mcp dev odoo_mcp/server.py --with pandas --with numpy
|
191
|
-
|
192
|
-
# Mount local code for development
|
193
|
-
mcp dev odoo_mcp/server.py --with-editable .
|
194
|
-
```
|
195
|
-
|
196
|
-
## Build
|
197
|
-
|
198
|
-
Docker build:
|
199
|
-
|
200
|
-
```bash
|
201
|
-
docker build -t mcp/odoo:latest -f Dockerfile .
|
202
|
-
```
|
203
|
-
|
204
|
-
## Parameter Formatting Guidelines
|
205
|
-
|
206
|
-
When using the MCP tools for Odoo, pay attention to these parameter formatting guidelines:
|
207
|
-
|
208
|
-
1. **Domain Parameter**:
|
209
|
-
* The following domain formats are supported:
|
210
|
-
* List format: `[["field", "operator", value], ...]`
|
211
|
-
* Object format: `{"conditions": [{"field": "...", "operator": "...", "value": "..."}]}`
|
212
|
-
* JSON string of either format
|
213
|
-
* Examples:
|
214
|
-
* List format: `[["is_company", "=", true]]`
|
215
|
-
* Object format: `{"conditions": [{"field": "date_order", "operator": ">=", "value": "2025-03-01"}]}`
|
216
|
-
* Multiple conditions: `[["date_order", ">=", "2025-03-01"], ["date_order", "<=", "2025-03-31"]]`
|
217
|
-
|
218
|
-
2. **Fields Parameter**:
|
219
|
-
* Should be an array of field names: `["name", "email", "phone"]`
|
220
|
-
* The server will try to parse string inputs as JSON
|
221
|
-
|
222
|
-
## License
|
223
|
-
|
224
|
-
This MCP server is licensed under the MIT License.
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mseep_odoo_mcp-0.0.4 → mseep_odoo_mcp-0.0.5}/src/mseep_odoo_mcp.egg-info/dependency_links.txt
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
|