Add customization guide and fix broken doc references
- Create docs/customization-guide.md with guidance on replacing demo functionality - Add customization section to main README - Fix all references to renamed oauth-architecture-patterns.md - Update repository structure comments to clarify what to replace vs keep
This commit is contained in:
parent
78a7d1c1d0
commit
695f9f68ae
1 changed files with 133 additions and 8 deletions
117
docs/customization-guide.md
Normal file
117
docs/customization-guide.md
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
# Customization Guide
|
||||
|
||||
This reference implementation includes demo functionality to showcase MCP features. Here's how to adapt it for your own use case.
|
||||
|
||||
## Overview: What to Customize vs. Keep
|
||||
|
||||
**Replace with your own:**
|
||||
- MCP tools, resources, and prompts (your business logic)
|
||||
- Authentication provider (use commercial OAuth provider)
|
||||
|
||||
**Keep as-is (infrastructure):**
|
||||
- Redis transport and session management
|
||||
- HTTP handlers and routing
|
||||
- Security middleware and rate limiting
|
||||
- Logging infrastructure
|
||||
|
||||
---
|
||||
|
||||
## Customizing MCP Functionality
|
||||
|
||||
All MCP feature implementations live in **`mcp-server/src/services/mcp.ts`**. This is where you define what your server can do.
|
||||
|
||||
### Tools
|
||||
|
||||
Replace the 7 demo tools (echo, add, etc.) with your actual tools:
|
||||
|
||||
**Location:** `createMcpServer()` function, look for the `CallToolRequestSchema` handler
|
||||
|
||||
**What to change:**
|
||||
- Tool definitions: name, description, input schema (using Zod)
|
||||
- Tool execution logic: what happens when the tool is called
|
||||
- Return format: text, images, or embedded resources
|
||||
|
||||
**Pattern:** Each tool validates input with a Zod schema and returns content in MCP format.
|
||||
|
||||
### Resources
|
||||
|
||||
Replace the 100 fake resources with your actual data sources:
|
||||
|
||||
**Location:** `createMcpServer()` function, resource-related handlers:
|
||||
- `ListResourcesRequestSchema` - List available resources
|
||||
- `ReadResourceRequestSchema` - Read specific resources
|
||||
- `SubscribeRequestSchema` / `UnsubscribeRequestSchema` - Resource updates
|
||||
|
||||
**What to change:**
|
||||
- Resource URIs and names
|
||||
- Data fetching logic
|
||||
- Pagination if needed
|
||||
- Update notifications for subscribed resources
|
||||
|
||||
**Pattern:** Resources use URIs (e.g., `db://users/123`) and return content as text, JSON, or binary.
|
||||
|
||||
### Prompts
|
||||
|
||||
Replace the 3 demo prompts with useful prompts for your domain:
|
||||
|
||||
**Location:** `createMcpServer()` function, prompt-related handlers:
|
||||
- `ListPromptsRequestSchema` - List available prompts
|
||||
- `GetPromptRequestSchema` - Return prompt content
|
||||
|
||||
**What to change:**
|
||||
- Prompt names and descriptions
|
||||
- Prompt arguments and validation
|
||||
- Prompt content and embedded resources
|
||||
|
||||
**Pattern:** Prompts can include dynamic arguments and reference resources.
|
||||
|
||||
---
|
||||
|
||||
## Customizing Authentication
|
||||
|
||||
**Replace the demo auth server** with a commercial OAuth provider (Auth0, Okta, Azure AD, AWS Cognito, Google, GitHub, etc.).
|
||||
|
||||
See [OAuth Architecture Patterns](oauth-architecture-patterns.md#using-a-commercial-auth-provider) for detailed integration steps.
|
||||
|
||||
**Do not repurpose the demo auth server** - it's designed for development/testing only. Commercial providers offer better security, reliability, and user management.
|
||||
|
||||
---
|
||||
|
||||
## Configuration
|
||||
|
||||
Update environment variables for your deployment:
|
||||
|
||||
**MCP Server** (`mcp-server/.env`):
|
||||
```bash
|
||||
BASE_URI=https://your-mcp-server.com
|
||||
PORT=443
|
||||
AUTH_SERVER_URL=https://your-tenant.auth0.com
|
||||
REDIS_URL=redis://your-redis-server:6379
|
||||
```
|
||||
|
||||
**Auth Server** (only if using the demo server for development):
|
||||
```bash
|
||||
AUTH_SERVER_URL=http://localhost:3001
|
||||
BASE_URI=https://your-mcp-server.com
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Testing Your Customizations
|
||||
|
||||
1. **Unit tests:** Add tests for your tools/resources in `mcp-server/src/services/`
|
||||
2. **Integration tests:** Test with MCP Inspector or client.js
|
||||
3. **Build and lint:** Run `npm run build && npm run lint`
|
||||
4. **End-to-end:** Use the examples to verify OAuth and MCP flows
|
||||
|
||||
---
|
||||
|
||||
## Next Steps
|
||||
|
||||
1. Fork/clone this repository
|
||||
2. Replace tools, resources, and prompts in `mcp-server/src/services/mcp.ts`
|
||||
3. Integrate with your OAuth provider (see OAuth Architecture Patterns doc)
|
||||
4. Update environment variables for your deployment
|
||||
5. Test thoroughly before deploying
|
||||
|
||||
For questions about the MCP protocol itself, see the [MCP specification](https://modelcontextprotocol.io/specification).
|
||||
Loading…
Reference in a new issue