@moorchehai/mcp 1.2.1
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.
- package/LICENSE +201 -0
- package/README.md +315 -0
- package/assets/moorcheh-logo-dark.svg +157 -0
- package/assets/moorcheh-logo-light.svg +157 -0
- package/bin/cli.js +76 -0
- package/env.example +2 -0
- package/package.json +68 -0
- package/src/client/mcp.json +11 -0
- package/src/server/config/api.js +90 -0
- package/src/server/index.js +219 -0
- package/src/server/tools/data-tools.js +158 -0
- package/src/server/tools/namespace-tools.js +130 -0
- package/src/server/tools/search-tools.js +230 -0
- package/src/server/utils/completable.js +77 -0
- package/src/server/utils/prompts.js +359 -0
- package/src/server/utils/resources.js +360 -0
- package/src/test/test-mcp.js +154 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
Apache License
|
|
2
|
+
Version 2.0, January 2004
|
|
3
|
+
http://www.apache.org/licenses/
|
|
4
|
+
|
|
5
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
6
|
+
|
|
7
|
+
1. Definitions.
|
|
8
|
+
|
|
9
|
+
"License" shall mean the terms and conditions for use, reproduction,
|
|
10
|
+
and distribution as defined by Sections 1 through 9 of this document.
|
|
11
|
+
|
|
12
|
+
"Licensor" shall mean the copyright owner or entity authorized by
|
|
13
|
+
the copyright owner that is granting the License.
|
|
14
|
+
|
|
15
|
+
"Legal Entity" shall mean the union of the acting entity and all
|
|
16
|
+
other entities that control, are controlled by, or are under common
|
|
17
|
+
control with that entity. For the purposes of this definition,
|
|
18
|
+
"control" means (i) the power, direct or indirect, to cause the
|
|
19
|
+
direction or management of such entity, whether by contract or
|
|
20
|
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
21
|
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
22
|
+
|
|
23
|
+
"You" (or "Your") shall mean an individual or Legal Entity
|
|
24
|
+
exercising permissions granted by this License.
|
|
25
|
+
|
|
26
|
+
"Source" form shall mean the preferred form for making modifications,
|
|
27
|
+
including but not limited to software source code, documentation
|
|
28
|
+
source, and configuration files.
|
|
29
|
+
|
|
30
|
+
"Object" form shall mean any form resulting from mechanical
|
|
31
|
+
transformation or translation of a Source form, including but
|
|
32
|
+
not limited to compiled object code, generated documentation,
|
|
33
|
+
and conversions to other media types.
|
|
34
|
+
|
|
35
|
+
"Work" shall mean the work of authorship, whether in Source or
|
|
36
|
+
Object form, made available under the License, as indicated by a
|
|
37
|
+
copyright notice that is included in or attached to the work
|
|
38
|
+
(an example is provided in the Appendix below).
|
|
39
|
+
|
|
40
|
+
"Derivative Works" shall mean any work, whether in Source or Object
|
|
41
|
+
form, that is based on (or derived from) the Work and for which the
|
|
42
|
+
editorial revisions, annotations, elaborations, or other modifications
|
|
43
|
+
represent, as a whole, an original work of authorship. For the purposes
|
|
44
|
+
of this License, Derivative Works shall not include works that remain
|
|
45
|
+
separable from, or merely link (or bind by name) to the interfaces of,
|
|
46
|
+
the Work and Derivative Works thereof.
|
|
47
|
+
|
|
48
|
+
"Contribution" shall mean any work of authorship, including
|
|
49
|
+
the original version of the Work and any modifications or additions
|
|
50
|
+
to that Work or Derivative Works thereof, that is intentionally
|
|
51
|
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
52
|
+
or by an individual or Legal Entity authorized to submit on behalf of
|
|
53
|
+
the copyright owner. For the purposes of this definition, "submitted"
|
|
54
|
+
means any form of electronic, verbal, or written communication sent
|
|
55
|
+
to the Licensor or its representatives, including but not limited to
|
|
56
|
+
communication on electronic mailing lists, source code control systems,
|
|
57
|
+
and issue tracking systems that are managed by, or on behalf of, the
|
|
58
|
+
Licensor for the purpose of discussing and improving the Work, but
|
|
59
|
+
excluding communication that is conspicuously marked or otherwise
|
|
60
|
+
designated in writing by the copyright owner as "Not a Contribution."
|
|
61
|
+
|
|
62
|
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
63
|
+
on behalf of whom a Contribution has been received by Licensor and
|
|
64
|
+
subsequently incorporated within the Work.
|
|
65
|
+
|
|
66
|
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
67
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
68
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
69
|
+
copyright license to reproduce, prepare Derivative Works of,
|
|
70
|
+
publicly display, publicly perform, sublicense, and distribute the
|
|
71
|
+
Work and such Derivative Works in Source or Object form.
|
|
72
|
+
|
|
73
|
+
3. Grant of Patent License. Subject to the terms and conditions of
|
|
74
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
75
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
76
|
+
(except as stated in this section) patent license to make, have made,
|
|
77
|
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
78
|
+
where such license applies only to those patent claims licensable
|
|
79
|
+
by such Contributor that are necessarily infringed by their
|
|
80
|
+
Contribution(s) alone or by combination of their Contribution(s)
|
|
81
|
+
with the Work to which such Contribution(s) was submitted. If You
|
|
82
|
+
institute patent litigation against any entity (including a
|
|
83
|
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
84
|
+
or a Contribution incorporated within the Work constitutes direct
|
|
85
|
+
or contributory patent infringement, then any patent licenses
|
|
86
|
+
granted to You under this License for that Work shall terminate
|
|
87
|
+
as of the date such litigation is filed.
|
|
88
|
+
|
|
89
|
+
4. Redistribution. You may reproduce and distribute copies of the
|
|
90
|
+
Work or Derivative Works thereof in any medium, with or without
|
|
91
|
+
modifications, and in Source or Object form, provided that You
|
|
92
|
+
meet the following conditions:
|
|
93
|
+
|
|
94
|
+
(a) You must give any other recipients of the Work or
|
|
95
|
+
Derivative Works a copy of this License; and
|
|
96
|
+
|
|
97
|
+
(b) You must cause any modified files to carry prominent notices
|
|
98
|
+
stating that You changed the files; and
|
|
99
|
+
|
|
100
|
+
(c) You must retain, in the Source form of any Derivative Works
|
|
101
|
+
that You distribute, all copyright, patent, trademark, and
|
|
102
|
+
attribution notices from the Source form of the Work,
|
|
103
|
+
excluding those notices that do not pertain to any part of
|
|
104
|
+
the Derivative Works; and
|
|
105
|
+
|
|
106
|
+
(d) If the Work includes a "NOTICE" text file as part of its
|
|
107
|
+
distribution, then any Derivative Works that You distribute must
|
|
108
|
+
include a readable copy of the attribution notices contained
|
|
109
|
+
within such NOTICE file, excluding those notices that do not
|
|
110
|
+
pertain to any part of the Derivative Works, in at least one
|
|
111
|
+
of the following places: within a NOTICE text file distributed
|
|
112
|
+
as part of the Derivative Works; within the Source form or
|
|
113
|
+
documentation, if provided along with the Derivative Works; or,
|
|
114
|
+
within a display generated by the Derivative Works, if and
|
|
115
|
+
wherever such third-party notices normally appear. The contents
|
|
116
|
+
of the NOTICE file are for informational purposes only and
|
|
117
|
+
do not modify the License. You may add Your own attribution
|
|
118
|
+
notices within Derivative Works that You distribute, alongside
|
|
119
|
+
or as an addendum to the NOTICE text from the Work, provided
|
|
120
|
+
that such additional attribution notices cannot be construed
|
|
121
|
+
as modifying the License.
|
|
122
|
+
|
|
123
|
+
You may add Your own copyright statement to Your modifications and
|
|
124
|
+
may provide additional or different license terms and conditions
|
|
125
|
+
for use, reproduction, or distribution of Your modifications, or
|
|
126
|
+
for any such Derivative Works as a whole, provided Your use,
|
|
127
|
+
reproduction, and distribution of the Work otherwise complies with
|
|
128
|
+
the conditions stated in this License.
|
|
129
|
+
|
|
130
|
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
131
|
+
any Contribution intentionally submitted for inclusion in the Work
|
|
132
|
+
by You to the Licensor shall be under the terms and conditions of
|
|
133
|
+
this License, without any additional terms or conditions.
|
|
134
|
+
Notwithstanding the above, nothing herein shall supersede or modify
|
|
135
|
+
the terms of any separate license agreement you may have executed
|
|
136
|
+
with Licensor regarding such Contributions.
|
|
137
|
+
|
|
138
|
+
6. Trademarks. This License does not grant permission to use the trade
|
|
139
|
+
names, trademarks, service marks, or product names of the Licensor,
|
|
140
|
+
except as required for reasonable and customary use in describing the
|
|
141
|
+
origin of the Work and reproducing the content of the NOTICE file.
|
|
142
|
+
|
|
143
|
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
144
|
+
agreed to in writing, Licensor provides the Work (and each
|
|
145
|
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
146
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
147
|
+
implied, including, without limitation, any warranties or conditions
|
|
148
|
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
149
|
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
150
|
+
appropriateness of using or redistributing the Work and assume any
|
|
151
|
+
risks associated with Your exercise of permissions under this License.
|
|
152
|
+
|
|
153
|
+
8. Limitation of Liability. In no event and under no legal theory,
|
|
154
|
+
whether in tort (including negligence), contract, or otherwise,
|
|
155
|
+
unless required by applicable law (such as deliberate and grossly
|
|
156
|
+
negligent acts) or agreed to in writing, shall any Contributor be
|
|
157
|
+
liable to You for damages, including any direct, indirect, special,
|
|
158
|
+
incidental, or consequential damages of any character arising as a
|
|
159
|
+
result of this License or out of the use or inability to use the
|
|
160
|
+
Work (including but not limited to damages for loss of goodwill,
|
|
161
|
+
work stoppage, computer failure or malfunction, or any and all
|
|
162
|
+
other commercial damages or losses), even if such Contributor
|
|
163
|
+
has been advised of the possibility of such damages.
|
|
164
|
+
|
|
165
|
+
9. Accepting Warranty or Additional Liability. While redistributing
|
|
166
|
+
the Work or Derivative Works thereof, You may choose to offer,
|
|
167
|
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
168
|
+
or other liability obligations and/or rights consistent with this
|
|
169
|
+
License. However, in accepting such obligations, You may act only
|
|
170
|
+
on Your own behalf and on Your sole responsibility, not on behalf
|
|
171
|
+
of any other Contributor, and only if You agree to indemnify,
|
|
172
|
+
defend, and hold each Contributor harmless for any liability
|
|
173
|
+
incurred by, or claims asserted against, such Contributor by reason
|
|
174
|
+
of your accepting any such warranty or additional liability.
|
|
175
|
+
|
|
176
|
+
END OF TERMS AND CONDITIONS
|
|
177
|
+
|
|
178
|
+
APPENDIX: How to apply the Apache License to your work.
|
|
179
|
+
|
|
180
|
+
To apply the Apache License to your work, attach the following
|
|
181
|
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
|
182
|
+
replaced with your own identifying information. (Don't include
|
|
183
|
+
the brackets!) The text should be enclosed in the appropriate
|
|
184
|
+
comment syntax for the file format. We also recommend that a
|
|
185
|
+
file or class name and description of purpose be included on the
|
|
186
|
+
same "printed page" as the copyright notice for easier
|
|
187
|
+
identification within third-party archives.
|
|
188
|
+
|
|
189
|
+
Copyright [yyyy] [name of copyright owner]
|
|
190
|
+
|
|
191
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
192
|
+
you may not use this file except in compliance with the License.
|
|
193
|
+
You may obtain a copy of the License at
|
|
194
|
+
|
|
195
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
196
|
+
|
|
197
|
+
Unless required by applicable law or agreed to in writing, software
|
|
198
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
199
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
200
|
+
See the License for the specific language governing permissions and
|
|
201
|
+
limitations under the License.
|
package/README.md
ADDED
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
<div align="left">
|
|
2
|
+
<picture>
|
|
3
|
+
<source media="(prefers-color-scheme: dark)" srcset="assets/moorcheh-logo-dark.svg">
|
|
4
|
+
<source media="(prefers-color-scheme: light)" srcset="assets/moorcheh-logo-light.svg">
|
|
5
|
+
<img width="250px" alt="Moorcheh Logo" src="assets/moorcheh-logo-light.svg">
|
|
6
|
+
</picture>
|
|
7
|
+
<br />
|
|
8
|
+
<h1>Moorcheh MCP Server</h1>
|
|
9
|
+
<p>A Model Context Protocol (MCP) server that provides seamless integration with Moorcheh's Embedding, Vector Store, Search, and Gen AI Answer services. This server enables you to interact with Moorcheh's comprehensive AI capabilities including document embedding, vector storage, semantic search, and AI-powered answer generation through the Model Context Protocol.</p>
|
|
10
|
+
</div>
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## Quick Start Guide
|
|
15
|
+
|
|
16
|
+
There are two ways to use the Moorcheh MCP server:
|
|
17
|
+
|
|
18
|
+
### Option 1: NPX (Recommended - No Installation Required)
|
|
19
|
+
|
|
20
|
+
The easiest way to get started:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# Set your API key and run directly
|
|
24
|
+
MOORCHEH_API_KEY=your_api_key_here npx -y @moorcheh/mcp
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Option 2: Manual Installation
|
|
28
|
+
|
|
29
|
+
If you prefer to clone and run locally:
|
|
30
|
+
|
|
31
|
+
1. **Clone the repository**
|
|
32
|
+
```bash
|
|
33
|
+
git clone https://github.com/moorcheh-ai/moorcheh-mcp.git
|
|
34
|
+
cd moorcheh-mcp
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
2. **Install dependencies**
|
|
38
|
+
```bash
|
|
39
|
+
npm install
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Step 2: Configure Your API Key
|
|
43
|
+
|
|
44
|
+
1. **Get your Moorcheh API key**
|
|
45
|
+
- Visit [Moorcheh Dashboard](https://app.moorcheh.ai)
|
|
46
|
+
- Sign in to your account
|
|
47
|
+
- Go to your account settings
|
|
48
|
+
- Generate or copy your API key
|
|
49
|
+
|
|
50
|
+
2. **Set up your environment**
|
|
51
|
+
```bash
|
|
52
|
+
# Copy the example environment file
|
|
53
|
+
cp env.example .env
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
3. **Edit the .env file**
|
|
57
|
+
```bash
|
|
58
|
+
# Open .env in your preferred editor
|
|
59
|
+
# Replace 'your_moorcheh_api_key_here' with your actual API key
|
|
60
|
+
MOORCHEH_API_KEY=your_actual_api_key_here
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Step 3: Start the Server
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
npm start
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
That's it! Your Moorcheh MCP server is now running and ready to use.
|
|
70
|
+
|
|
71
|
+
## Setting Up with Claude Desktop
|
|
72
|
+
|
|
73
|
+
To use the Moorcheh MCP server with Claude Desktop:
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
https://github.com/user-attachments/assets/fccbba8e-7393-4b74-8a73-769b55b3f3a3
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
### Step 1: Install Claude Desktop
|
|
81
|
+
1. Download Claude Desktop from [https://claude.ai/download](https://claude.ai/download)
|
|
82
|
+
2. Install and launch Claude Desktop
|
|
83
|
+
|
|
84
|
+
### Step 2: Configure MCP Server
|
|
85
|
+
|
|
86
|
+
**Option A: Using NPX (Recommended)**
|
|
87
|
+
1. In Claude Desktop, go to **Settings** → **Developer**
|
|
88
|
+
2. Click **Edit Config**
|
|
89
|
+
3. Configure the server with these settings:
|
|
90
|
+
```json
|
|
91
|
+
{
|
|
92
|
+
"mcpServers": {
|
|
93
|
+
"moorcheh": {
|
|
94
|
+
"command": "npx",
|
|
95
|
+
"args": ["-y", "@moorcheh/mcp"],
|
|
96
|
+
"env": {
|
|
97
|
+
"MOORCHEH_API_KEY": "your_actual_api_key_here"
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
**Option B: Local Installation**
|
|
105
|
+
1. In Claude Desktop, go to **Settings** → **Developer**
|
|
106
|
+
2. Click **Edit Config**
|
|
107
|
+
3. Configure the server with these settings:
|
|
108
|
+
```json
|
|
109
|
+
{
|
|
110
|
+
"mcpServers":{
|
|
111
|
+
"moorcheh": {
|
|
112
|
+
"command": "node",
|
|
113
|
+
"args": [
|
|
114
|
+
"path\\to\\moorcheh-mcp\\src\\server\\index.js"
|
|
115
|
+
],
|
|
116
|
+
"env": {
|
|
117
|
+
"NODE_ENV": "development"
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
3. **Important**:
|
|
125
|
+
- For **Option A**: Replace `your_actual_api_key_here` with your actual Moorcheh API key
|
|
126
|
+
- For **Option B**: Replace `path\\to\\moorcheh-mcp\\src\\server\\index.js` with the actual path to your `index.js` file and create .env in **moorcheh-mcp** with your API key
|
|
127
|
+
4. Save the configuration file and restart Claude Desktop completely
|
|
128
|
+
|
|
129
|
+
### Step 3: Test the Connection
|
|
130
|
+
1. Start a new conversation in Claude Desktop
|
|
131
|
+
2. Ask Claude to list the available tools: "Can you list down my namespaces?"
|
|
132
|
+
3. You should see tools like `list-namespaces`, `search`, `answer`, etc.
|
|
133
|
+
|
|
134
|
+
## Setting Up with Cursor
|
|
135
|
+
|
|
136
|
+
To use the Moorcheh MCP server with Cursor IDE:
|
|
137
|
+
|
|
138
|
+
### Step 1: Install Cursor
|
|
139
|
+
1. Download Cursor from [https://cursor.com](https://cursor.com)
|
|
140
|
+
2. Install and launch Cursor
|
|
141
|
+
|
|
142
|
+
### Step 2: Configure MCP Server
|
|
143
|
+
|
|
144
|
+
**Option A: Using NPX (Recommended)**
|
|
145
|
+
1. In Cursor, go to **Settings** → **Tools & integration**
|
|
146
|
+
2. Click **Add MCP Server**
|
|
147
|
+
3. Configure the server with these settings:
|
|
148
|
+
```json
|
|
149
|
+
{
|
|
150
|
+
"mcpServers": {
|
|
151
|
+
"moorcheh": {
|
|
152
|
+
"command": "npx",
|
|
153
|
+
"args": ["-y", "@moorcheh/mcp"],
|
|
154
|
+
"env": {
|
|
155
|
+
"MOORCHEH_API_KEY": "your_actual_api_key_here"
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
**Option B: Local Installation**
|
|
163
|
+
1. In Cursor, go to **Settings** → **Tools & integration**
|
|
164
|
+
2. Click **Add MCP Server**
|
|
165
|
+
3. Configure the server with these settings:
|
|
166
|
+
```json
|
|
167
|
+
{
|
|
168
|
+
"mcpServers":{
|
|
169
|
+
"moorcheh": {
|
|
170
|
+
"command": "node",
|
|
171
|
+
"args": [
|
|
172
|
+
"path\\to\\moorcheh-mcp\\src\\server\\index.js"
|
|
173
|
+
],
|
|
174
|
+
"env": {
|
|
175
|
+
"NODE_ENV": "development"
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Step 3: Set Your API Key
|
|
183
|
+
- **For Option A**: Replace `your_actual_api_key_here` with your actual Moorcheh API key in the configuration
|
|
184
|
+
- **For Option B**: Create .env in **moorcheh-mcp** directory and add your API key with `MOORCHEH_API_KEY=your_key_here`
|
|
185
|
+
|
|
186
|
+
### Step 4: Test the Connection
|
|
187
|
+
1. Open a new chat in Cursor (Cmd/Ctrl + L)
|
|
188
|
+
2. Ask the AI to list available Moorcheh tools: "What Moorcheh tools can I use?"
|
|
189
|
+
3. You should see tools like `list-namespaces`, `search`, `answer`, etc.
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
## What This Server Does
|
|
193
|
+
|
|
194
|
+
The Moorcheh MCP server provides tools for:
|
|
195
|
+
|
|
196
|
+
- **Namespace Management**: Create, list, and delete namespaces for organizing your data
|
|
197
|
+
- **Document Operations**: Upload and manage text documents and vector embeddings
|
|
198
|
+
- **Advanced Search**: Perform semantic search across your data
|
|
199
|
+
- **AI-Powered Answers**: Get intelligent responses based on your stored data
|
|
200
|
+
|
|
201
|
+
## Available Tools
|
|
202
|
+
|
|
203
|
+
### Namespace Tools
|
|
204
|
+
- **`list-namespaces`**: View all your available namespaces
|
|
205
|
+
- **`create-namespace`**: Create a new namespace for storing data
|
|
206
|
+
- **`delete-namespace`**: Remove a namespace and all its contents
|
|
207
|
+
|
|
208
|
+
### Data Tools
|
|
209
|
+
- **`upload-text`**: Upload text documents to a namespace
|
|
210
|
+
- **`upload-vectors`**: Upload vector embeddings to a namespace
|
|
211
|
+
- **`get-data`**: Retrieve text documents by ID from text namespaces
|
|
212
|
+
- **`delete-data`**: Remove specific data items from a namespace
|
|
213
|
+
|
|
214
|
+
### Search & AI Tools
|
|
215
|
+
- **`search`**: Search across namespaces with vector similarity
|
|
216
|
+
- **`answer`**: Get AI-generated answers based on top of your search
|
|
217
|
+
|
|
218
|
+
## Supported Bedrock Models
|
|
219
|
+
|
|
220
|
+
| Model ID | Name | Provider | Description |
|
|
221
|
+
|----------|------|----------|-------------|
|
|
222
|
+
| `anthropic.claude-3-7-sonnet-20250219-v1:0` | Claude 3.7 Sonnet | Anthropic | Latest Claude model with enhanced capabilities |
|
|
223
|
+
| `anthropic.claude-sonnet-4-20250514-v1:0` | Claude Sonnet 4 | Anthropic | Latest Claude model with enhanced capabilities |
|
|
224
|
+
| `meta.llama4-maverick-17b-instruct-v1:0` | Llama 4 Maverick | Meta | Latest Llama model optimized for instruction following |
|
|
225
|
+
| `meta.llama3-3-70b-instruct-v1:0` | Llama 3 70B | Meta | Large Llama model with strong general capabilities |
|
|
226
|
+
| `deepseek.r1-v1:0` | DeepSeek-R1 | DeepSeek | Specialized model for research and analysis |
|
|
227
|
+
|
|
228
|
+
## Prerequisites
|
|
229
|
+
|
|
230
|
+
- **Node.js**: Version 18.0.0 or higher
|
|
231
|
+
- **Moorcheh Account**: Active account with API access
|
|
232
|
+
- **Git**: For cloning the repository
|
|
233
|
+
|
|
234
|
+
## Development
|
|
235
|
+
|
|
236
|
+
### Development Mode
|
|
237
|
+
For development with auto-reload:
|
|
238
|
+
```bash
|
|
239
|
+
npm run dev
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
### Available Scripts
|
|
243
|
+
|
|
244
|
+
| Script | Description |
|
|
245
|
+
|--------|-------------|
|
|
246
|
+
| `npm start` | Start the MCP server |
|
|
247
|
+
| `npm run dev` | Start in development mode with auto-reload |
|
|
248
|
+
| `npm test` | Run tests (when available) |
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
## Environment Variables
|
|
252
|
+
|
|
253
|
+
| Variable | Description | Required | Default |
|
|
254
|
+
|----------|-------------|----------|---------|
|
|
255
|
+
| `MOORCHEH_API_KEY` | Your Moorcheh API key | Yes | None |
|
|
256
|
+
|
|
257
|
+
## Troubleshooting
|
|
258
|
+
|
|
259
|
+
### Common Issues
|
|
260
|
+
|
|
261
|
+
1. **"Missing required API_KEY environment variable"**
|
|
262
|
+
- Make sure you've created a `.env` file
|
|
263
|
+
- Verify your API key is correctly set in the `.env` file
|
|
264
|
+
- Check that the API key is valid in your Moorcheh dashboard
|
|
265
|
+
|
|
266
|
+
2. **"Forbidden: Check your API key"**
|
|
267
|
+
- Your API key may be invalid or expired
|
|
268
|
+
- Generate a new API key from the Moorcheh dashboard
|
|
269
|
+
- Update your `.env` file with the new key
|
|
270
|
+
|
|
271
|
+
3. **"Network Error"**
|
|
272
|
+
- Check your internet connection
|
|
273
|
+
- Verify the API endpoints are accessible
|
|
274
|
+
- Try again in a few minutes
|
|
275
|
+
|
|
276
|
+
### Getting Help
|
|
277
|
+
|
|
278
|
+
- **GitHub Issues**: [https://github.com/moorcheh-ai/moorcheh-mcp/issues](https://github.com/moorcheh-ai/moorcheh-mcp/issues)
|
|
279
|
+
- **Moorcheh Documentation**: [https://console.moorcheh.ai/docs/mcp](https://console.moorcheh.ai/docs/mcp)
|
|
280
|
+
- **Moorcheh Dashboard**: [https://console.moorcheh.ai](https://console.moorcheh.ai)
|
|
281
|
+
|
|
282
|
+
## License
|
|
283
|
+
|
|
284
|
+
This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.
|
|
285
|
+
|
|
286
|
+
## Contributing
|
|
287
|
+
|
|
288
|
+
We welcome contributions! Please feel free to submit a Pull Request.
|
|
289
|
+
|
|
290
|
+
## Changelog
|
|
291
|
+
|
|
292
|
+
### v1.2.1
|
|
293
|
+
- NPX Support: Added CLI wrapper for seamless `npx -y @moorcheh/mcp` execution
|
|
294
|
+
- Package Structure: Configured for npm registry publishing as `@moorcheh/mcp`
|
|
295
|
+
- CLI Features: Added help, version commands and API key validation
|
|
296
|
+
- User Experience: Improved error messages and installation guidance
|
|
297
|
+
|
|
298
|
+
### v1.2.0
|
|
299
|
+
- New tool: `get-data` to fetch documents by ID from text namespaces (POST /namespaces/{name}/documents/get)
|
|
300
|
+
- Reliability: Static documentation resources to avoid invalid URI errors in MCP clients
|
|
301
|
+
- Windows compatibility: Use ';' for command chaining in PowerShell
|
|
302
|
+
- Stability: Ensured stdout handling respects MCP JSON-RPC framing
|
|
303
|
+
|
|
304
|
+
### v1.1.0
|
|
305
|
+
- Enhanced prompt system with dynamic content generation
|
|
306
|
+
- Added comprehensive argument schemas with Zod validation
|
|
307
|
+
- Improved search optimization, data organization, and AI answer setup prompts
|
|
308
|
+
- Updated prompt registration to use new MCP SDK signature
|
|
309
|
+
- Better user guidance and interactive prompt responses
|
|
310
|
+
|
|
311
|
+
### v1.0.0
|
|
312
|
+
- Initial release with MCP server functionality
|
|
313
|
+
- Support for text and vector operations
|
|
314
|
+
- AI-powered answer generation
|
|
315
|
+
- Comprehensive documentation
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
<?xml version="1.0" standalone="no"?>
|
|
2
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
|
3
|
+
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
|
4
|
+
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="1500.000000pt" height="600.000000pt" viewBox="0 0 1500.000000 600.000000"
|
|
6
|
+
preserveAspectRatio="xMidYMid meet">
|
|
7
|
+
|
|
8
|
+
<g transform="translate(0.000000,600.000000) scale(0.100000,-0.100000)"
|
|
9
|
+
fill="#ffffff" stroke="none">
|
|
10
|
+
<path d="M2969 4960 c-86 -15 -165 -72 -203 -147 -21 -41 -21 -109 -1 -117 16
|
|
11
|
+
-6 25 8 45 71 15 49 71 110 120 131 75 32 255 11 399 -47 56 -22 66 -30 69
|
|
12
|
+
-53 4 -35 24 -50 63 -46 62 6 67 75 7 98 -18 6 -55 22 -83 35 -131 60 -312 93
|
|
13
|
+
-416 75z"/>
|
|
14
|
+
<path d="M2943 4755 c-55 -28 -95 -68 -121 -121 -27 -58 11 -90 45 -36 26 42
|
|
15
|
+
75 92 108 110 46 24 153 19 255 -13 106 -34 156 -59 245 -124 62 -45 69 -54
|
|
16
|
+
67 -80 -6 -57 64 -94 101 -53 49 54 -20 149 -72 100 -11 -11 -12 -9 -7 8 13
|
|
17
|
+
44 -136 144 -297 201 -52 18 -100 26 -172 30 -93 4 -103 3 -152 -22z"/>
|
|
18
|
+
<path d="M2600 4658 c-51 -13 -110 -57 -144 -106 -24 -33 -31 -56 -34 -105 -5
|
|
19
|
+
-84 22 -149 92 -215 93 -88 212 -130 397 -139 168 -8 203 5 134 49 -19 13 -35
|
|
20
|
+
26 -35 29 0 4 39 15 86 25 l86 18 -6 35 c-10 61 -74 178 -134 243 -54 58 -126
|
|
21
|
+
118 -143 118 -4 0 -12 -13 -17 -29 -14 -41 -43 -54 -71 -34 -19 13 -22 23 -19
|
|
22
|
+
61 3 45 2 47 -27 53 -44 10 -125 8 -165 -3z m81 -74 c12 -15 11 -18 -5 -28
|
|
23
|
+
-69 -41 -82 -55 -103 -106 -25 -63 -56 -79 -72 -37 -22 58 31 146 104 172 52
|
|
24
|
+
18 60 18 76 -1z m101 -110 c78 -40 58 -164 -28 -180 -45 -8 -91 11 -109 47
|
|
25
|
+
-49 94 41 182 137 133z"/>
|
|
26
|
+
<path d="M2735 4469 c4 -5 4 -21 1 -34 -7 -29 -49 -43 -71 -25 -23 19 -28 6
|
|
27
|
+
-15 -34 27 -82 118 -88 155 -10 19 40 5 78 -36 100 -33 17 -42 18 -34 3z"/>
|
|
28
|
+
<path d="M1278 4384 c-40 -42 -74 -81 -76 -88 -1 -7 7 -21 18 -31 20 -18 21
|
|
29
|
+
-18 76 36 42 41 54 60 51 77 -9 48 22 18 68 -67 58 -106 135 -224 152 -229 6
|
|
30
|
+
-2 20 9 29 24 17 26 17 28 -9 78 -42 80 -155 258 -169 268 -37 23 -67 8 -140
|
|
31
|
+
-68z"/>
|
|
32
|
+
<path d="M526 4441 c-4 -5 -6 -206 -5 -446 l1 -437 35 68 c86 168 219 324 335
|
|
33
|
+
392 121 72 300 109 406 84 23 -5 42 -8 42 -5 0 3 -28 36 -62 73 -35 36 -106
|
|
34
|
+
114 -158 173 l-95 106 -247 1 c-138 0 -249 -4 -252 -9z"/>
|
|
35
|
+
<path d="M2144 4436 c-104 -33 -184 -129 -184 -220 0 -82 55 -150 136 -171 42
|
|
36
|
+
-10 56 -9 125 11 42 12 86 27 98 33 30 16 67 70 81 117 11 36 10 48 -9 98 -11
|
|
37
|
+
31 -21 68 -21 81 0 54 -126 82 -226 51z m114 -58 c20 -20 14 -26 -45 -45 -41
|
|
38
|
+
-13 -74 -33 -114 -70 -31 -29 -59 -50 -63 -46 -14 14 -5 58 20 90 47 62 168
|
|
39
|
+
105 202 71z"/>
|
|
40
|
+
<path d="M1765 4166 c-52 -24 -125 -95 -125 -121 0 -8 -15 -22 -32 -31 -43
|
|
41
|
+
-22 -67 -43 -84 -75 -11 -23 -10 -33 11 -85 13 -32 33 -67 45 -76 19 -15 24
|
|
42
|
+
-15 65 -1 36 12 51 12 79 3 43 -14 83 5 170 79 46 39 68 51 100 53 36 3 43 8
|
|
43
|
+
63 43 13 22 23 43 23 46 0 3 -22 20 -48 37 -36 23 -57 48 -81 92 l-32 60 -52
|
|
44
|
+
0 c-33 0 -70 -9 -102 -24z m100 -60 c0 -13 -18 -30 -50 -49 -27 -16 -61 -40
|
|
45
|
+
-76 -53 -14 -13 -28 -24 -31 -24 -15 0 -16 34 -2 64 30 63 159 113 159 62z
|
|
46
|
+
m-215 -186 c0 -20 -43 -45 -59 -36 -18 11 -13 44 11 68 20 20 22 20 35 3 7
|
|
47
|
+
-11 13 -26 13 -35z"/>
|
|
48
|
+
<path d="M3130 4163 c-39 -7 -46 -21 -17 -34 30 -14 82 0 82 22 0 15 -24 20
|
|
49
|
+
-65 12z"/>
|
|
50
|
+
<path d="M2468 4066 c-32 -36 -58 -68 -58 -71 0 -4 45 -4 99 0 55 4 128 4 163
|
|
51
|
+
0 l63 -7 161 -161 c88 -89 172 -178 187 -197 l26 -35 1 215 0 215 -157 0
|
|
52
|
+
c-193 0 -241 12 -423 102 -3 2 -31 -26 -62 -61z"/>
|
|
53
|
+
<path d="M1123 4029 c-111 -19 -217 -81 -331 -197 -82 -82 -128 -149 -174
|
|
54
|
+
-250 -57 -127 -76 -194 -80 -281 l-3 -84 60 -17 c33 -9 81 -20 107 -24 47 -7
|
|
55
|
+
47 -7 74 34 27 41 27 42 8 53 -31 18 -125 110 -139 137 -16 32 -29 120 -17
|
|
56
|
+
120 4 0 19 -25 31 -55 25 -61 98 -148 143 -171 17 -9 31 -14 32 -12 31 51 68
|
|
57
|
+
105 104 151 l44 58 -24 27 c-38 42 -85 114 -111 173 l-24 54 -7 -59 c-6 -47
|
|
58
|
+
-16 -70 -48 -113 -22 -29 -46 -53 -54 -53 -7 0 -16 15 -19 33 -9 44 22 111 79
|
|
59
|
+
176 25 28 46 61 46 71 0 34 17 22 25 -17 12 -69 96 -201 161 -256 l30 -26 75
|
|
60
|
+
25 c41 13 145 43 232 66 181 48 177 44 177 155 0 80 -21 130 -83 194 -49 51
|
|
61
|
+
-94 75 -168 89 -58 11 -73 11 -146 -1z m148 -69 c37 -20 13 -91 -26 -76 -25 9
|
|
62
|
+
-40 53 -25 71 15 18 24 19 51 5z m-133 -38 c4 -40 -9 -57 -61 -84 -22 -11 -63
|
|
63
|
+
-38 -90 -60 -45 -35 -52 -37 -65 -24 -9 8 -15 34 -16 60 -1 52 5 58 109 111
|
|
64
|
+
87 45 119 44 123 -3z m-498 -557 c0 -23 -32 -60 -43 -48 -10 9 -9 38 3 68 9
|
|
65
|
+
23 13 25 25 15 8 -7 15 -22 15 -35z"/>
|
|
66
|
+
<path d="M2213 4030 c-15 -6 -23 -18 -23 -32 0 -40 20 -97 44 -124 20 -24 32
|
|
67
|
+
-27 97 -31 41 -3 133 0 204 5 l130 10 34 -36 c19 -21 82 -86 140 -146 95 -98
|
|
68
|
+
107 -108 129 -100 14 5 30 17 36 26 9 15 -12 41 -144 174 l-155 156 -190 -5
|
|
69
|
+
c-104 -3 -197 -8 -206 -12 -13 -5 -17 3 -22 46 -9 74 -25 89 -74 69z"/>
|
|
70
|
+
<path d="M14138 4015 c-26 -8 -56 -27 -67 -41 -51 -65 -51 -181 1 -240 36 -41
|
|
71
|
+
79 -54 183 -54 145 0 205 51 205 176 0 70 -24 116 -78 147 -44 26 -179 33
|
|
72
|
+
-244 12z"/>
|
|
73
|
+
<path d="M8210 3235 l0 -775 184 0 185 0 3 338 c3 331 3 338 27 385 60 123
|
|
74
|
+
233 144 296 37 19 -33 20 -54 23 -397 l3 -363 185 0 185 0 -3 423 -3 422 -28
|
|
75
|
+
60 c-36 78 -95 137 -171 172 -55 25 -72 28 -166 28 -94 0 -111 -3 -165 -28
|
|
76
|
+
-69 -32 -115 -73 -156 -136 l-29 -45 0 327 0 327 -185 0 -185 0 0 -775z"/>
|
|
77
|
+
<path d="M10820 3235 l0 -775 184 0 185 0 3 338 c3 331 3 338 27 385 60 123
|
|
78
|
+
233 144 296 37 19 -33 20 -54 23 -397 l3 -363 185 0 185 0 -3 423 -3 422 -28
|
|
79
|
+
60 c-36 78 -95 137 -171 172 -55 25 -72 28 -166 28 -94 0 -111 -3 -165 -28
|
|
80
|
+
-69 -32 -115 -73 -156 -136 l-29 -45 0 327 0 327 -185 0 -185 0 0 -775z"/>
|
|
81
|
+
<path d="M1935 3864 c-33 -35 -30 -114 6 -206 14 -36 108 -98 198 -132 56 -22
|
|
82
|
+
70 -32 76 -54 3 -14 34 -85 67 -157 33 -71 69 -153 79 -182 22 -58 39 -69 77
|
|
83
|
+
-50 51 24 54 18 -147 412 l-36 70 -120 61 -120 61 -3 84 c-2 59 -7 89 -19 101
|
|
84
|
+
-21 24 -30 23 -58 -8z"/>
|
|
85
|
+
<path d="M2505 3779 c-66 -5 -141 -7 -167 -4 -46 5 -46 5 -97 -52 l-51 -57 54
|
|
86
|
+
-28 55 -28 93 -185 c51 -102 95 -185 98 -184 3 0 30 29 60 65 30 35 58 64 63
|
|
87
|
+
64 4 0 7 -94 7 -210 l0 -209 46 -78 c52 -89 93 -141 176 -230 68 -72 76 -108
|
|
88
|
+
32 -142 -50 -39 -128 -16 -214 65 l-51 47 3 -129 3 -129 248 -3 247 -2 1 37
|
|
89
|
+
c0 21 0 243 0 493 l-1 455 -91 85 c-51 47 -158 149 -238 228 -81 78 -149 141
|
|
90
|
+
-151 141 -3 -1 -59 -6 -125 -10z"/>
|
|
91
|
+
<path d="M1652 3745 c-33 -24 -55 -73 -48 -107 4 -18 1 -30 -7 -32 -6 -2 -86
|
|
92
|
+
-26 -177 -54 -91 -28 -217 -65 -280 -82 -63 -18 -123 -40 -133 -49 -22 -21
|
|
93
|
+
-196 -274 -268 -389 -49 -80 -51 -84 -34 -103 10 -10 31 -19 46 -19 26 0 38
|
|
94
|
+
17 160 223 72 122 133 224 135 225 1 2 77 24 167 48 168 45 306 93 395 138 44
|
|
95
|
+
22 55 34 82 90 36 72 38 119 5 124 -11 1 -30 -5 -43 -13z"/>
|
|
96
|
+
<path d="M3006 3574 c-14 -37 -3 -56 82 -129 99 -87 203 -153 255 -162 29 -4
|
|
97
|
+
36 -2 42 16 9 29 2 36 -60 65 -73 33 -126 71 -219 155 -43 39 -82 71 -86 71
|
|
98
|
+
-4 0 -11 -7 -14 -16z"/>
|
|
99
|
+
<path d="M3795 3553 c-108 -23 -191 -67 -266 -142 -106 -107 -152 -228 -152
|
|
100
|
+
-406 0 -173 42 -290 145 -400 102 -109 246 -165 428 -165 182 0 326 56 428
|
|
101
|
+
164 103 111 143 222 143 401 0 184 -42 297 -150 406 -44 43 -88 76 -131 97
|
|
102
|
+
-125 59 -298 77 -445 45z m209 -254 c53 -13 92 -49 119 -108 29 -64 36 -254
|
|
103
|
+
13 -335 -32 -108 -118 -168 -218 -152 -62 10 -105 43 -136 106 -25 52 -27 63
|
|
104
|
+
-27 195 0 133 1 143 28 197 29 59 53 81 108 96 46 14 63 14 113 1z"/>
|
|
105
|
+
<path d="M5100 3554 c-261 -56 -420 -263 -420 -549 0 -359 239 -579 610 -562
|
|
106
|
+
337 15 540 227 540 562 0 345 -228 567 -580 564 -47 0 -114 -7 -150 -15z m253
|
|
107
|
+
-272 c38 -21 73 -70 87 -121 31 -109 20 -289 -23 -366 -42 -74 -129 -109 -215
|
|
108
|
+
-86 -57 16 -95 51 -123 113 -20 47 -23 68 -23 183 0 114 3 136 23 182 27 61
|
|
109
|
+
55 90 108 109 47 18 124 11 166 -14z"/>
|
|
110
|
+
<path d="M6602 3555 c-86 -26 -144 -81 -195 -180 l-25 -50 -6 55 c-3 30 -7 80
|
|
111
|
+
-9 110 l-2 55 -162 3 -163 2 0 -545 0 -545 185 0 185 0 0 301 c0 328 3 354 53
|
|
112
|
+
415 59 71 190 105 294 75 37 -11 34 -20 53 149 6 52 13 107 16 122 5 24 1 28
|
|
113
|
+
-33 37 -51 15 -138 13 -191 -4z"/>
|
|
114
|
+
<path d="M7345 3556 c-275 -64 -425 -258 -425 -551 0 -349 223 -565 585 -565
|
|
115
|
+
181 0 332 56 423 155 50 54 102 161 85 175 -11 9 -297 100 -315 100 -8 0 -19
|
|
116
|
+
-18 -25 -42 -23 -86 -102 -136 -196 -125 -72 9 -119 44 -154 114 -26 54 -28
|
|
117
|
+
66 -28 178 1 173 30 250 110 290 56 27 144 27 182 -1 40 -30 72 -81 80 -126 3
|
|
118
|
+
-23 10 -37 17 -35 6 2 82 28 169 56 179 60 177 57 131 150 -50 100 -157 182
|
|
119
|
+
-285 217 -78 21 -280 27 -354 10z"/>
|
|
120
|
+
<path d="M9943 3559 c-208 -35 -375 -192 -423 -399 -17 -71 -17 -239 -1 -310
|
|
121
|
+
48 -205 200 -350 413 -394 217 -45 448 8 570 130 42 42 97 129 87 138 -2 2
|
|
122
|
+
-69 25 -149 51 -114 38 -145 45 -149 34 -9 -29 -78 -87 -116 -98 -152 -42
|
|
123
|
+
-276 27 -309 172 l-6 27 375 0 375 0 0 118 c0 187 -42 304 -145 401 -123 116
|
|
124
|
+
-316 164 -522 130z m234 -275 c34 -25 69 -86 78 -136 l7 -38 -196 0 c-190 0
|
|
125
|
+
-196 1 -196 20 0 30 27 91 53 119 57 62 192 81 254 35z"/>
|
|
126
|
+
<path d="M13126 3560 c-128 -23 -216 -69 -290 -152 -40 -43 -86 -136 -86 -171
|
|
127
|
+
0 -7 60 -26 155 -48 l155 -36 11 36 c7 20 19 46 27 59 40 61 182 88 238 46 45
|
|
128
|
+
-33 67 -70 72 -122 5 -59 31 -48 -231 -102 -217 -45 -264 -60 -329 -106 -129
|
|
129
|
+
-91 -145 -311 -30 -425 139 -138 464 -130 604 14 32 33 41 38 49 26 5 -8 9
|
|
130
|
+
-17 9 -20 0 -19 81 -81 125 -96 60 -21 203 -24 256 -5 l37 13 6 87 c4 48 10
|
|
131
|
+
95 12 104 5 16 0 17 -40 12 -39 -6 -48 -3 -70 19 l-26 26 0 234 c0 128 -5 260
|
|
132
|
+
-11 292 -12 68 -46 140 -89 188 -34 40 -131 93 -204 114 -62 17 -282 25 -350
|
|
133
|
+
13z m284 -693 c0 -112 -75 -187 -186 -187 -42 0 -59 5 -83 26 -26 22 -31 33
|
|
134
|
+
-31 70 0 73 30 92 200 128 104 22 100 24 100 -37z"/>
|
|
135
|
+
<path d="M14060 3005 l0 -545 185 0 185 0 0 545 0 545 -185 0 -185 0 0 -545z"/>
|
|
136
|
+
<path d="M1966 3432 c-34 -37 -85 -91 -112 -120 l-49 -53 -60 58 c-34 32 -80
|
|
137
|
+
80 -104 106 l-43 49 -66 -35 c-37 -19 -96 -47 -131 -61 -48 -19 -83 -44 -137
|
|
138
|
+
-96 -39 -39 -77 -70 -83 -70 -30 0 -1 -41 111 -158 248 -257 503 -512 513
|
|
139
|
+
-512 6 0 124 119 263 264 l252 265 -34 78 c-81 187 -128 289 -139 300 -7 6
|
|
140
|
+
-36 21 -65 32 l-53 20 -63 -67z"/>
|
|
141
|
+
<path d="M1183 3337 c-99 -20 -102 -21 -122 -58 -12 -20 -21 -39 -21 -43 0
|
|
142
|
+
-26 146 27 218 78 28 21 52 40 52 42 0 6 -15 4 -127 -19z"/>
|
|
143
|
+
<path d="M524 3128 c3 -13 6 -81 6 -153 l1 -130 29 35 c42 49 132 208 125 220
|
|
144
|
+
-3 5 -14 10 -24 10 -10 0 -44 9 -76 20 -72 25 -69 25 -61 -2z"/>
|
|
145
|
+
<path d="M988 3137 c-7 -8 -44 -69 -82 -136 -45 -78 -79 -128 -97 -138 -16
|
|
146
|
+
-10 -60 -65 -99 -125 -38 -59 -97 -136 -130 -171 l-60 -65 7 -76 6 -76 256 2
|
|
147
|
+
256 3 0 397 0 398 -22 0 c-12 0 -28 -6 -35 -13z"/>
|
|
148
|
+
<path d="M2456 3058 c-14 -20 -12 -29 46 -137 115 -219 218 -350 286 -368 50
|
|
149
|
+
-12 58 50 10 75 -66 34 -115 100 -199 263 -101 198 -112 211 -143 167z"/>
|
|
150
|
+
<path d="M648 2873 c-14 -16 -63 -80 -110 -143 -121 -162 -181 -222 -267 -262
|
|
151
|
+
-63 -29 -71 -36 -69 -58 2 -20 9 -26 33 -28 83 -8 298 196 444 421 36 55 41
|
|
152
|
+
70 31 82 -18 22 -33 19 -62 -12z"/>
|
|
153
|
+
<path d="M12245 2811 c-76 -35 -105 -85 -105 -179 0 -75 30 -128 90 -162 63
|
|
154
|
+
-35 186 -36 245 -2 56 32 87 82 93 147 8 93 -29 163 -102 196 -55 25 -167 25
|
|
155
|
+
-221 0z"/>
|
|
156
|
+
</g>
|
|
157
|
+
</svg>
|