MCP Server Registration Checklist for Claude Catalog
General Information
Server Type: Remote MCP Server
Platforms: Claude.ai, Claude Desktop, Claude Mobile
Submission Form: https://docs.google.com/forms/d/e/1FAIpQLSeafJF2NDI7oYx1r8o0ycivCSVLNq92Mpc1FPxMKSw1CzDkqA/viewform
Documentation: https://support.claude.com/en/articles/12922490-remote-mcp-server-submission-guide
Mandatory Technical Requirements
1. HTTPS with Valid SSL Certificate
- [ ] Server accessible via HTTPS
- [ ] Valid SSL certificate (Let's Encrypt or commercial)
- [ ] Endpoint:
https://yourdomain.com/mcp/v1/
2. MCP Protocol Implementation
Your server must support these MCP methods:
Required Methods:
- [ ]
initialize- Protocol handshake - [ ]
tools/list- Returns list of available tools - [ ]
tools/call- Executes a tool - [ ]
notifications/initialized- Initialization confirmation (no response needed)
3. Safety Annotations (CRITICAL - MANDATORY)
Every single tool MUST have safety annotations.
- [ ] All tools have
readOnlyHintORdestructiveHint - [ ] Annotations accurately reflect tool behavior
- [ ] No tools are missing annotations
Rules:
- Read-only tools (only read data): readOnlyHint: true, destructiveHint: false
- Destructive tools (create/modify/delete data): destructiveHint: true, readOnlyHint: false
Common mistakes to avoid:
- Missing annotations entirely
- Both set to false
- Wrong annotation (destructive tool marked as read-only)
Official documentation:
- MCP spec (Tools, Data Types → Tool, annotations):
Tools – Server Features — tool definition and optional annotations (trust & safety).
Schema Reference → ToolAnnotations — defines readOnlyHint and destructiveHint on the Tool type.
- Claude catalog requirement (every tool must have these):
Remote MCP Server Submission Guide — where the “every tool MUST have safety annotations” rule is stated for directory listing.
4. OAuth 2.0 Authentication (if authentication required)
- [ ] OAuth 2.0 authorization code flow implemented
- [ ] Authorization endpoint:
https://yourdomain.com/oauth/authorize/ - [ ] Token endpoint:
https://yourdomain.com/auth/token/ - [ ] Callback URLs allowlisted
Required callback URLs to allowlist:
'https://claude.ai/api/mcp/auth_callback', // ← Claude.ai web
'https://claude.com/api/mcp/auth_callback', // ← Claude.com web
'http://localhost:6274/oauth/callback', // ← Claude Desktop
'http://localhost:6274/oauth/callback/debug' // ← Claude Code/Inspector
5. CORS Configuration
- [ ] CORS headers configured for Claude domains
- [ ] OPTIONS requests handled correctly
6. IP Allowlisting (if server behind firewall)
- [ ] Claude IP addresses allowlisted
Get current IP list:
curl https://docs.claude.com/en/api/ip-addresses
Add these IPs to your firewall allowlist.
Note: IP allowlisting alone is NOT sufficient security - use OAuth 2.0 for authentication.
Documentation Requirements
1. Public Documentation (README.md)
- [ ] Server description (what it does)
- [ ] List of features
- [ ] Complete list of all tools with:
- Tool name
- Type (read-only / destructive)
- Description
- Parameters
- Return value
- [ ] Setup/connection instructions
- [ ] Authentication details (if applicable)
- [ ] Minimum 3 usage examples (MANDATORY)
- [ ] Support contact information
- [ ] Privacy policy link
Example structure:
# Teacher Assistant MCP Server
## Description
MCP server for teachers to manage courses, students, and assignments through Claude.
## Features
- Course management
- Student tracking
- Assignment creation and grading
## Available Tools
### getMyCourses
**Type:** Read-only
**Description:** Returns list of all courses for the current teacher
**Parameters:** None
**Returns:** Array of courses with student counts
### getStudentsByCourse
**Type:** Read-only
**Description:** Returns list of students for a specific course
**Parameters:**
- `courseId` (number, required): Course ID
**Returns:** Array of students with their progress
### createAssignment
**Type:** Destructive (creates data)
**Description:** Creates a new assignment for a course
**Parameters:**
- `courseId` (number, required): Course ID
- `title` (string, required): Assignment title
- `description` (string, optional): Assignment description
- `dueDate` (string, required): Due date (ISO 8601)
**Returns:** Created assignment with ID
## Connection
1. Open [Claude MCP Directory](https://claude.com/connectors)
2. Find "Teacher Assistant"
3. Click "Connect"
4. Login with your teacher account
5. Authorize access
## Authentication
This server uses OAuth 2.0. Each teacher sees only their own data.
## Usage Examples
### Example 1: View My Courses
**User prompt:** "Show me all my courses this semester"
**What happens:**
1. Claude calls `getMyCourses`
2. Server returns course list
3. Claude formats and displays course information
**Expected result:**
You have 3 courses this semester:
1. Math 10th Grade (25 students)
2. Physics 11th Grade (20 students)
3. Algebra 9th Grade (28 students)
### Example 2: Find Students Who Didn't Submit
**User prompt:** "Which students from Math 10th Grade didn't submit the last assignment?"
**What happens:**
1. Claude calls `getMyCourses` to find course ID
2. Claude calls `getStudentsByCourse` with courseId
3. Claude analyzes submission status
4. Shows list of students
**Expected result:**
5 students didn't submit "Quadratic Equations":
- John Smith
- Mary Johnson
- Alex Brown
- Sarah Davis
- Mike Wilson
### Example 3: Create New Assignment
**User prompt:** "Create an assignment for Physics 11th Grade on 'Mechanics' due next Monday"
**What happens:**
1. Claude calls `getMyCourses` to find "Physics 11th Grade"
2. Claude calculates next Monday's date
3. Claude calls `createAssignment` with parameters
4. Confirms creation
**Expected result:**
✓ Assignment created:
Title: Mechanics
Course: Physics 11th Grade
Due: February 17, 2025
Students will be notified
## Privacy Policy
https://yourdomain.com/privacy
We collect only necessary data:
- Your course information
- Student lists
- Grades and assignments
We DO NOT collect:
- Full conversations with Claude
- Personal messages
- Data from other apps
## Support
- Email: support@yourdomain.com
- Documentation: https://yourdomain.com/docs
- Troubleshooting: https://yourdomain.com/troubleshooting
2. Privacy Policy (MANDATORY)
- [ ] Privacy policy published at stable URL
- [ ] Explains data collection
- [ ] Explains data usage
- [ ] Explains data retention
- [ ] Explains user rights
Minimum requirements: - What data you collect - Why you collect it - How long you store it - Who has access to it - How users can delete their data
Example: https://yourdomain.com/privacy
3. Minimum 3 Usage Examples (MANDATORY)
Each example must include: - [ ] User prompt/request - [ ] What the server does - [ ] Expected output/behavior
Format:
### Example 1: [Action Name]
**User prompt:** "Natural language request here"
**What happens:**
- Step 1: Server does X
- Step 2: Server does Y
- Step 3: Result shown
**Expected result:**
[Show what user sees]
Tips: - Cover different tool types (read-only and destructive) - Show realistic use cases - Demonstrate value proposition - Use natural language prompts
Test Account
Required Test Account Setup
- [ ] Test account created with full access
- [ ] Sample data populated
- [ ] Account documented for reviewers
What to provide in submission form:
Test Account Credentials:
Email: test.teacher@yourdomain.com
Password: TestPass123!
Sample Data Available:
- 3 courses with students
- 10-15 students per course
- 5 assignments with various statuses
- Grade history with different completion levels
Special Notes:
- Account has full teacher permissions
- All tools are accessible
- Sample data refreshes daily (optional)
Important: - Test account must remain active during review - Sample data should demonstrate all tool functionality - Ensure realistic data (not just dummy values)
Security & Compliance
Security Checklist
- [ ] HTTPS only (no HTTP)
- [ ] Valid SSL certificate
- [ ] OAuth 2.0 for authentication
- [ ] Tokens stored securely (hashed)
- [ ] SQL injection prevention
- [ ] XSS prevention
- [ ] CSRF protection for OAuth
Privacy Compliance
- [ ] Only collect necessary data
- [ ] Do NOT collect full conversation history
- [ ] Do NOT collect data from other apps
- [ ] Clear data retention policy
- [ ] User data deletion capability
Policy Compliance
Must comply with: - [ ] Anthropic Usage Policy - [ ] MCP Directory Policy - [ ] MCP Directory Terms
Prohibited: - Money transfers or financial transactions - Image/video/audio generation (design assets like charts OK) - Cross-service automation - Bypassing Claude safety guardrails - Accessing user's chat history or memory
Performance Requirements
Response Times
- [ ] Initialize: < 5 seconds
- [ ] tools/list: < 5 seconds
- [ ] tools/call: < 30 seconds (preferably < 10)
Error Handling
- [ ] Graceful error handling
- [ ] Helpful error messages (not generic)
- [ ] Proper HTTP status codes
Token Efficiency
- [ ] Responses are concise but complete
- [ ] No unnecessary verbose output
- [ ] Tool names ≤ 64 characters
Guideline: Token usage should match task complexity
Submission Process
Pre-Submission Checklist
Technical: - [ ] HTTPS working with valid certificate - [ ] MCP protocol implemented (initialize, tools/list, tools/call) - [ ] All tools have safety annotations - [ ] OAuth 2.0 working - [ ] CORS configured correctly - [ ] Response times acceptable - [ ] Error handling implemented
Documentation: - [ ] Public documentation published - [ ] Privacy policy published - [ ] Minimum 3 usage examples written - [ ] Support contact provided - [ ] All tools documented
Testing: - [ ] Test account created with sample data - [ ] Tested with MCP Inspector or Claude Desktop - [ ] All tools verified working - [ ] OAuth flow tested end-to-end
Submission Form
Form URL: https://docs.google.com/forms/d/e/1FAIpQLSeafJF2NDI7oYx1r8o0ycivCSVLNq92Mpc1FPxMKSw1CzDkqA/viewform
Information to provide:
- Server Details
- Server name
- Description (1-2 sentences)
- Server URL (HTTPS)
-
Category
-
OAuth Details (if applicable)
- Authorization URL
- Token URL
- Client ID
-
Callback URLs
-
Documentation
- Documentation URL
- Privacy policy URL
-
Support email/URL
-
Test Access
- Test account credentials
- Sample data description
-
Special setup instructions (if any)
-
Examples
- Example 1 (prompt + behavior)
- Example 2 (prompt + behavior)
-
Example 3 (prompt + behavior)
-
Developer Info
- Contact name
- Contact email
-
Company/Organization (if applicable)
-
Compliance
- Confirm ownership of API endpoint
- Agree to MCP Directory Terms
- Confirm compliance with policies
Common Rejection Reasons
Top Issues to Avoid
- Missing safety annotations (readOnlyHint/destructiveHint)
- Fix: Add
@mcpReadOnlyor@mcpDestructiveto ALL RPC methods -
Impact: Immediate rejection
-
OAuth implementation errors
- Missing callback URLs in allowlist
- Token validation not working
-
Fix: Test OAuth flow thoroughly
-
Incomplete documentation
- Missing usage examples
- Tools not documented
-
Fix: Follow documentation template exactly
-
Test account issues
- Account doesn't work
- No sample data
-
Fix: Test with a fresh login
-
MCP protocol violations
- Wrong response format
- Missing required methods
-
Fix: Validate with MCP Inspector
-
Privacy policy missing or inaccessible
-
Fix: Publish at stable HTTPS URL
-
Poor error handling
- Generic error messages
- Server crashes on invalid input
- Fix: Test edge cases, implement graceful errors
Review Timeline
What to expect:
- Submission: Instant confirmation
- Review: Variable timeline (high volume of submissions)
- Response: Email notification if accepted or revision needed
- No guaranteed timeline - be patient
Note: Anthropic cannot promise: - Acceptance of every submission - Individual responses to all submissions - Specific review timelines
Best Practices
For Faster Approval
- Complete checklist thoroughly - don't skip items
- Test everything yourself first - pretend you're the reviewer
- Provide excellent documentation - clear, comprehensive, with examples
- High-quality test account - realistic data, full access
- Professional presentation - well-written, no typos
For Better User Experience
- Fast responses - optimize your queries
- Helpful errors - guide users to fix issues
- Token efficient - don't send walls of text
- Clear tool descriptions - Claude needs to know when to call each tool
- Realistic examples - show real use cases
For Long-term Success
- Monitor server health - uptime, performance
- Respond to user feedback - fix issues promptly
- Keep dependencies updated - security patches
- Maintain compliance - policies may change
- Support users - answer questions quickly
Important Links
Official Resources: - Submission Form: https://docs.google.com/forms/d/e/1FAIpQLSeafJF2NDI7oYx1r8o0ycivCSVLNq92Mpc1FPxMKSw1CzDkqA/viewform - Submission Guide: https://support.claude.com/en/articles/12922490-remote-mcp-server-submission-guide - Directory Policy: https://support.claude.com/en/articles/11697096-anthropic-mcp-directory-policy - Directory Terms: https://support.claude.com/en/articles/11697081-anthropic-mcp-directory-terms-and-conditions - MCP Protocol: https://modelcontextprotocol.io/ - Claude IP Addresses: https://docs.claude.com/en/api/ip-addresses
Support: - Claude Help Center: https://support.claude.com - MCP Documentation: https://modelcontextprotocol.io/
Final Pre-Submission Checklist
Print this and check off each item before submitting:
Technical Requirements:
- [ ] HTTPS with valid SSL certificate
- [ ] initialize method working
- [ ] tools/list method working
- [ ] tools/call method working
- [ ] ALL tools have safety annotations
- [ ] OAuth 2.0 implemented (if auth required)
- [ ] CORS configured for Claude domains
- [ ] IP allowlisting done (if behind firewall)
- [ ] Response times < 30 seconds
- [ ] Error handling graceful and helpful
Documentation: - [ ] Public documentation published - [ ] Server description clear - [ ] All tools documented with types - [ ] Minimum 3 usage examples included - [ ] Privacy policy published - [ ] Support contact provided
Testing: - [ ] Test account created - [ ] Sample data populated - [ ] Tested with MCP Inspector or Claude Desktop - [ ] All tools verified working - [ ] OAuth flow tested end-to-end (if applicable) - [ ] Error cases tested
Compliance: - [ ] Read and agree to MCP Directory Terms - [ ] Comply with Anthropic Usage Policy - [ ] No prohibited use cases - [ ] Only necessary data collected - [ ] Own or control the API endpoint
Submission Form: - [ ] All fields filled out completely - [ ] Test credentials provided - [ ] URLs verified (all links work) - [ ] Examples are clear and realistic - [ ] Contact information accurate
You're Ready to Submit When:
- All items in this checklist are complete
- You can successfully test your server with MCP Inspector
- Test account works and has realistic sample data
- Documentation is clear and comprehensive
- You've tested the OAuth flow (if applicable)
- All tools have correct safety annotations
Good luck with your submission!