mseep-odoo-mcp 0.0.5__tar.gz → 0.0.6__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.
@@ -1,19 +1,18 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mseep-odoo-mcp
3
- Version: 0.0.5
3
+ Version: 0.0.6
4
4
  Summary: MCP Server for Odoo Integration
5
- Home-page:
6
- Author: mseep
7
5
  Author-email: mseep <support@skydeck.ai>
8
- Maintainer-email: mseep <support@skydeck.ai>
9
6
  License: MIT
7
+ Project-URL: Homepage, https://github.com/tuanle96/mcp-odoo
8
+ Project-URL: Issues, https://github.com/tuanle96/mcp-odoo/issues
10
9
  Keywords: odoo,mcp,server
11
10
  Classifier: License :: OSI Approved :: MIT License
12
11
  Classifier: Programming Language :: Python :: 3
13
12
  Classifier: Programming Language :: Python :: 3.10
14
13
  Classifier: Operating System :: OS Independent
15
- Requires-Python: >=3.6
16
- Description-Content-Type: text/markdown
14
+ Requires-Python: >=3.10
15
+ Description-Content-Type: text/plain
17
16
  License-File: LICENSE
18
17
  Requires-Dist: mcp>=0.1.1
19
18
  Requires-Dist: requests>=2.31.0
@@ -25,8 +24,6 @@ Requires-Dist: mypy; extra == "dev"
25
24
  Requires-Dist: ruff; extra == "dev"
26
25
  Requires-Dist: build; extra == "dev"
27
26
  Requires-Dist: twine; extra == "dev"
28
- Dynamic: author
29
27
  Dynamic: license-file
30
- Dynamic: requires-python
31
28
 
32
- # Package managed by MseeP.ai
29
+ Package managed by MseeP.ai
@@ -0,0 +1,193 @@
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.
@@ -6,9 +6,8 @@ build-backend = "setuptools.build_meta"
6
6
 
7
7
  [project]
8
8
  name = "mseep-odoo-mcp"
9
- version = "0.0.5"
9
+ version = "0.0.6"
10
10
  description = "MCP Server for Odoo Integration"
11
- readme = "README.md"
12
11
  requires-python = ">=3.10"
13
12
  classifiers = [
14
13
  "License :: OSI Approved :: MIT License",
@@ -29,13 +28,18 @@ dependencies = [
29
28
  "requests>=2.31.0",
30
29
  "pypi-xmlrpc==2020.12.3",
31
30
  ]
32
- maintainers = [
33
- { name = "mseep", email = "support@skydeck.ai" },
34
- ]
31
+
32
+ [project.readme]
33
+ content-type = "text/plain"
34
+ text = "Package managed by MseeP.ai"
35
35
 
36
36
  [project.license]
37
37
  text = "MIT"
38
38
 
39
+ [project.urls]
40
+ Homepage = "https://github.com/tuanle96/mcp-odoo"
41
+ Issues = "https://github.com/tuanle96/mcp-odoo/issues"
42
+
39
43
  [project.optional-dependencies]
40
44
  dev = [
41
45
  "black",
@@ -1,19 +1,18 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mseep-odoo-mcp
3
- Version: 0.0.5
3
+ Version: 0.0.6
4
4
  Summary: MCP Server for Odoo Integration
5
- Home-page:
6
- Author: mseep
7
5
  Author-email: mseep <support@skydeck.ai>
8
- Maintainer-email: mseep <support@skydeck.ai>
9
6
  License: MIT
7
+ Project-URL: Homepage, https://github.com/tuanle96/mcp-odoo
8
+ Project-URL: Issues, https://github.com/tuanle96/mcp-odoo/issues
10
9
  Keywords: odoo,mcp,server
11
10
  Classifier: License :: OSI Approved :: MIT License
12
11
  Classifier: Programming Language :: Python :: 3
13
12
  Classifier: Programming Language :: Python :: 3.10
14
13
  Classifier: Operating System :: OS Independent
15
- Requires-Python: >=3.6
16
- Description-Content-Type: text/markdown
14
+ Requires-Python: >=3.10
15
+ Description-Content-Type: text/plain
17
16
  License-File: LICENSE
18
17
  Requires-Dist: mcp>=0.1.1
19
18
  Requires-Dist: requests>=2.31.0
@@ -25,8 +24,6 @@ Requires-Dist: mypy; extra == "dev"
25
24
  Requires-Dist: ruff; extra == "dev"
26
25
  Requires-Dist: build; extra == "dev"
27
26
  Requires-Dist: twine; extra == "dev"
28
- Dynamic: author
29
27
  Dynamic: license-file
30
- Dynamic: requires-python
31
28
 
32
- # Package managed by MseeP.ai
29
+ Package managed by MseeP.ai
@@ -1,7 +1,6 @@
1
1
  LICENSE
2
2
  README.md
3
3
  pyproject.toml
4
- setup.py
5
4
  src/mseep_odoo_mcp.egg-info/PKG-INFO
6
5
  src/mseep_odoo_mcp.egg-info/SOURCES.txt
7
6
  src/mseep_odoo_mcp.egg-info/dependency_links.txt
@@ -1 +0,0 @@
1
- # Package managed by MseeP.ai
@@ -1,20 +0,0 @@
1
-
2
- from setuptools import setup, find_packages
3
-
4
- setup(
5
- name="mseep-odoo-mcp",
6
- version="0.0.3",
7
- description="MCP Server for Odoo Integration",
8
- author="mseep",
9
- author_email="support@skydeck.ai",
10
- url="",
11
- packages=find_packages(),
12
- classifiers=[
13
- "Programming Language :: Python :: 3",
14
- "License :: OSI Approved :: MIT License",
15
- "Operating System :: OS Independent",
16
- ],
17
- python_requires=">=3.6",
18
- install_requires=['mcp>=0.1.1', 'requests>=2.31.0', 'pypi-xmlrpc==2020.12.3'],
19
- keywords=["mseep"] + ['odoo', 'mcp', 'server'],
20
- )
File without changes
File without changes