@iflow-mcp/dynamicendpoints-etsy-mcp 1.2.0
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/.env.example +9 -0
- package/.github/copilot-instructions.md +16 -0
- package/.smithery/index.cjs +1352 -0
- package/DEPLOYMENT_CHECKLIST.md +206 -0
- package/OAUTH_SETUP.md +275 -0
- package/PROMPTS_AND_RESOURCES.md +353 -0
- package/QUICK_REFERENCE.md +186 -0
- package/README.md +677 -0
- package/SMITHERY_DEPLOYMENT.md +276 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +2459 -0
- package/icon.svg +54 -0
- package/language.json +1 -0
- package/package.json +1 -0
- package/package_name +1 -0
- package/push_info.json +5 -0
- package/smithery.yaml +1 -0
- package/src/index.ts +2667 -0
- package/tsconfig.json +19 -0
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
# Smithery Deployment Guide
|
|
2
|
+
|
|
3
|
+
This guide will help you deploy the Etsy MCP server to [Smithery](https://smithery.ai), making it accessible as a hosted MCP server.
|
|
4
|
+
|
|
5
|
+
## What is Smithery?
|
|
6
|
+
|
|
7
|
+
Smithery is a platform that hosts MCP servers, handling:
|
|
8
|
+
- Automatic containerization and deployment
|
|
9
|
+
- Infrastructure and scaling
|
|
10
|
+
- Discovery through the Smithery registry
|
|
11
|
+
- Easy integration with MCP clients like Claude Desktop
|
|
12
|
+
|
|
13
|
+
## Prerequisites
|
|
14
|
+
|
|
15
|
+
- GitHub account with your repository
|
|
16
|
+
- [Smithery account](https://smithery.ai) (sign up is free)
|
|
17
|
+
- Your repository must be public or accessible to Smithery
|
|
18
|
+
|
|
19
|
+
## Project Structure (Already Configured)
|
|
20
|
+
|
|
21
|
+
Your project includes all required Smithery files:
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
etsy_mcp/
|
|
25
|
+
├── smithery.yaml # ✅ Smithery configuration
|
|
26
|
+
├── package.json # ✅ With module field
|
|
27
|
+
├── src/
|
|
28
|
+
│ └── index.ts # ✅ Exports createServer function
|
|
29
|
+
└── tsconfig.json # ✅ TypeScript config
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Deployment Steps
|
|
33
|
+
|
|
34
|
+
### 1. Push to GitHub
|
|
35
|
+
|
|
36
|
+
Ensure all files are committed and pushed:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
git add .
|
|
40
|
+
git commit -m "Configure for Smithery deployment"
|
|
41
|
+
git push origin main
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### 2. Connect to Smithery
|
|
45
|
+
|
|
46
|
+
1. Go to [smithery.ai/new](https://smithery.ai/new)
|
|
47
|
+
2. Click **"Connect GitHub"**
|
|
48
|
+
3. Authorize Smithery to access your repositories
|
|
49
|
+
4. Select the `etsy_mcp` repository
|
|
50
|
+
|
|
51
|
+
### 3. Configure Server Details
|
|
52
|
+
|
|
53
|
+
Fill in your server information:
|
|
54
|
+
- **Name**: Etsy MCP Server
|
|
55
|
+
- **Description**: MCP server for Etsy API integration with shop management
|
|
56
|
+
- **Category**: E-commerce or API Integration
|
|
57
|
+
- **Repository**: Your GitHub URL
|
|
58
|
+
|
|
59
|
+
### 4. Deploy
|
|
60
|
+
|
|
61
|
+
1. Navigate to the **Deployments** tab on your server page
|
|
62
|
+
2. Click **"Deploy"**
|
|
63
|
+
3. Smithery will:
|
|
64
|
+
- Clone your repository
|
|
65
|
+
- Detect the TypeScript runtime from `smithery.yaml`
|
|
66
|
+
- Install dependencies with `npm ci`
|
|
67
|
+
- Build using Smithery CLI
|
|
68
|
+
- Deploy to hosted infrastructure
|
|
69
|
+
- Discover your tools automatically
|
|
70
|
+
|
|
71
|
+
### 5. Test Your Deployment
|
|
72
|
+
|
|
73
|
+
Once deployed, your server will be available at:
|
|
74
|
+
```
|
|
75
|
+
https://server.smithery.ai/your-username/etsy-mcp-server/mcp
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Configuration for Users
|
|
79
|
+
|
|
80
|
+
Users connecting to your Smithery-hosted server will see a configuration form with these fields:
|
|
81
|
+
|
|
82
|
+
1. **API Key** (required): Etsy API key from Developer Portal
|
|
83
|
+
2. **Shop ID** (optional): Their Etsy shop ID for faster operations
|
|
84
|
+
3. **Access Token** (optional): OAuth token for write operations
|
|
85
|
+
|
|
86
|
+
This is automatically generated from the `configSchema` in `src/index.ts`.
|
|
87
|
+
|
|
88
|
+
## Local Testing Before Deployment
|
|
89
|
+
|
|
90
|
+
Test your server locally with the Smithery CLI:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
# Install dependencies
|
|
94
|
+
npm install
|
|
95
|
+
|
|
96
|
+
# Start development server with interactive playground
|
|
97
|
+
npm run dev
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
This opens the **Smithery Interactive Playground** where you can:
|
|
101
|
+
- Test all 19 MCP tools in real-time
|
|
102
|
+
- See tool responses and debug issues
|
|
103
|
+
- Validate your configuration schema
|
|
104
|
+
- Experiment with different inputs
|
|
105
|
+
|
|
106
|
+
## Build Command
|
|
107
|
+
|
|
108
|
+
If you want to build without deploying:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
npm run build
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
This uses the Smithery CLI to bundle your server.
|
|
115
|
+
|
|
116
|
+
## Updating Your Deployment
|
|
117
|
+
|
|
118
|
+
To deploy updates:
|
|
119
|
+
|
|
120
|
+
1. Make changes to your code
|
|
121
|
+
2. Commit and push to GitHub
|
|
122
|
+
3. In Smithery dashboard, click **"Deploy"** again
|
|
123
|
+
4. Smithery will rebuild and redeploy automatically
|
|
124
|
+
|
|
125
|
+
## Environment Variables (Not Needed for Smithery)
|
|
126
|
+
|
|
127
|
+
When deployed to Smithery:
|
|
128
|
+
- ❌ No need for `.env` files
|
|
129
|
+
- ❌ No environment variables required
|
|
130
|
+
- ✅ Users provide configuration through the form
|
|
131
|
+
- ✅ Configuration is encrypted and secure
|
|
132
|
+
|
|
133
|
+
## Remote vs Local Deployment
|
|
134
|
+
|
|
135
|
+
### Remote Deployment (Default)
|
|
136
|
+
Your current `smithery.yaml` configures **remote deployment**:
|
|
137
|
+
```yaml
|
|
138
|
+
runtime: "typescript"
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
This means:
|
|
142
|
+
- ✅ Hosted on Smithery's infrastructure
|
|
143
|
+
- ✅ No local setup needed for users
|
|
144
|
+
- ✅ Automatic scaling and monitoring
|
|
145
|
+
- ✅ Always available
|
|
146
|
+
|
|
147
|
+
### Local Deployment (Alternative)
|
|
148
|
+
To allow users to run locally instead:
|
|
149
|
+
```yaml
|
|
150
|
+
runtime: "typescript"
|
|
151
|
+
target: "local"
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
With local deployment:
|
|
155
|
+
- Server runs on user's machine
|
|
156
|
+
- Available in Smithery registry for discovery
|
|
157
|
+
- Users need to `npm install` and run locally
|
|
158
|
+
|
|
159
|
+
**Recommendation**: Stick with remote deployment for easier user experience.
|
|
160
|
+
|
|
161
|
+
## Troubleshooting
|
|
162
|
+
|
|
163
|
+
### Build Fails on Smithery
|
|
164
|
+
|
|
165
|
+
Check these common issues:
|
|
166
|
+
|
|
167
|
+
1. **Missing dependencies**: All packages must be in `package.json`
|
|
168
|
+
2. **TypeScript errors**: Run `npm run compile` locally to check
|
|
169
|
+
3. **Module field**: Ensure `package.json` has `"module": "src/index.ts"`
|
|
170
|
+
4. **Export structure**: Verify `createServer` is default export
|
|
171
|
+
|
|
172
|
+
### Server Doesn't Show Tools
|
|
173
|
+
|
|
174
|
+
Ensure:
|
|
175
|
+
- `createServer` function returns the server object
|
|
176
|
+
- Tools are registered before returning
|
|
177
|
+
- No runtime errors during initialization
|
|
178
|
+
|
|
179
|
+
### Configuration Form Not Showing
|
|
180
|
+
|
|
181
|
+
Verify:
|
|
182
|
+
- `configSchema` is exported from `src/index.ts`
|
|
183
|
+
- Schema uses Zod with proper descriptions
|
|
184
|
+
- All fields have `.describe()` calls
|
|
185
|
+
|
|
186
|
+
## Testing Your Deployed Server
|
|
187
|
+
|
|
188
|
+
### With Claude Desktop
|
|
189
|
+
|
|
190
|
+
Add to your `claude_desktop_config.json`:
|
|
191
|
+
|
|
192
|
+
```json
|
|
193
|
+
{
|
|
194
|
+
"mcpServers": {
|
|
195
|
+
"etsy": {
|
|
196
|
+
"url": "https://server.smithery.ai/your-username/etsy-mcp-server/mcp",
|
|
197
|
+
"apiKey": "your_etsy_api_key",
|
|
198
|
+
"config": {
|
|
199
|
+
"apiKey": "your_etsy_api_key",
|
|
200
|
+
"shopId": "your_shop_id",
|
|
201
|
+
"accessToken": "your_oauth_token"
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### With MCP Inspector
|
|
209
|
+
|
|
210
|
+
```bash
|
|
211
|
+
npx @modelcontextprotocol/inspector https://server.smithery.ai/your-username/etsy-mcp-server/mcp
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
## Advanced Configuration
|
|
215
|
+
|
|
216
|
+
### Custom Build Options
|
|
217
|
+
|
|
218
|
+
Create `smithery.config.js` in your project root:
|
|
219
|
+
|
|
220
|
+
```javascript
|
|
221
|
+
export default {
|
|
222
|
+
esbuild: {
|
|
223
|
+
// Mark packages as external if bundling issues occur
|
|
224
|
+
external: ["some-native-module"],
|
|
225
|
+
|
|
226
|
+
// Enable minification
|
|
227
|
+
minify: true,
|
|
228
|
+
|
|
229
|
+
// Set Node.js target
|
|
230
|
+
target: "node18",
|
|
231
|
+
},
|
|
232
|
+
};
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### OAuth Support (Future)
|
|
236
|
+
|
|
237
|
+
Smithery supports OAuth for remote servers. If you want to add full OAuth flow:
|
|
238
|
+
|
|
239
|
+
1. Export an `oauth` provider from `src/index.ts`
|
|
240
|
+
2. Smithery automatically handles OAuth endpoints
|
|
241
|
+
3. See [Smithery OAuth docs](https://smithery.ai/docs/build/oauth)
|
|
242
|
+
|
|
243
|
+
## Monitoring Your Server
|
|
244
|
+
|
|
245
|
+
After deployment, Smithery provides:
|
|
246
|
+
- **Usage metrics**: How many requests your server receives
|
|
247
|
+
- **Error logs**: Any runtime errors or failures
|
|
248
|
+
- **Performance data**: Response times and latency
|
|
249
|
+
- **User analytics**: How many users are connecting
|
|
250
|
+
|
|
251
|
+
Access this from your Smithery dashboard.
|
|
252
|
+
|
|
253
|
+
## Costs
|
|
254
|
+
|
|
255
|
+
Smithery hosting is:
|
|
256
|
+
- **Free tier**: Available for public servers
|
|
257
|
+
- **Pro tier**: For private servers or higher usage
|
|
258
|
+
- **Enterprise**: Custom infrastructure
|
|
259
|
+
|
|
260
|
+
Check [smithery.ai/pricing](https://smithery.ai/pricing) for details.
|
|
261
|
+
|
|
262
|
+
## Support
|
|
263
|
+
|
|
264
|
+
- 📚 [Smithery Documentation](https://smithery.ai/docs)
|
|
265
|
+
- 💬 [Smithery Discord](https://discord.gg/smithery)
|
|
266
|
+
- 🐛 [GitHub Issues](https://github.com/your-username/etsy_mcp/issues)
|
|
267
|
+
|
|
268
|
+
## Next Steps
|
|
269
|
+
|
|
270
|
+
After deployment:
|
|
271
|
+
1. ✅ Test all tools through the playground
|
|
272
|
+
2. ✅ Add your server to the public registry (if desired)
|
|
273
|
+
3. ✅ Share with the MCP community
|
|
274
|
+
4. ✅ Monitor usage and update as needed
|
|
275
|
+
|
|
276
|
+
Your Etsy MCP server is now production-ready! 🚀
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAgBnE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,eAAO,MAAM,YAAY;;;;;;;;;;;;EAIvB,CAAC;AAwiFH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;GAYzF"}
|