build-custom-mcp-server
Helps users connect and use a service in Rebel when it isn't already in the built-in connector catalog.
Skill by mindstone
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/mindstone-build-custom-mcp-server
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend, security, research, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/build-custom-mcp-server
What's inside
- Skill name
build-custom-mcp-server- Description
- Helps users connect and use a service in Rebel when it isn't already in the built-in connector catalog. Acts as an expert advisor — runs the full build-vs-buy check (catalog, MCP Registry, community) before scaffolding a custom MCP server and guiding research, implementation, security review, and contribution.
- License
- MIT
- Instructions
- 1,005 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Agent Skills spec issues
- body: 1005 lines (spec recommends under 500)
Files (27)
- LICENSE.txt
- SKILL.md
- contribute-connector.md · references/
- evaluation.md · references/
- flow-external-api.md · references/
- flow-internal-api.md · references/
- mcp-development-standard.md · references/
- mcp-testing-guide.md · references/
- mcp_best_practices.md · references/
- node_mcp_server.md · references/
- python_mcp_server.md · references/
- rebel-integration.md · references/
- .env.example · references/starter-template/
- .gitignore · references/starter-template/
- LICENSE · references/starter-template/
- README.md · references/starter-template/
- package.json · references/starter-template/
- index.ts · references/starter-template/src/
- logger.ts · references/starter-template/src/
- smoke.test.mjs · references/starter-template/test/
- tsconfig.json · references/starter-template/
- timezone_handling.md · references/
- connections.py · scripts/
- evaluation.py · scripts/
- example_evaluation.xml · scripts/
- pre-submit-check.sh · scripts/
- requirements.txt · scripts/
SKILL.md (first lines)
# Create MCP Server
Guide users through creating a custom MCP server to connect their API to Rebel.
**Default: TypeScript/Node.js** using the bundled starter template. Python reference available in `references/python_mcp_server.md` if requested.
## Voice Firewall — How to Talk to Non-Technical Users
The user is non-technical. They are creating a tool with Rebel, not coding, shipping packages, or managing open-source plumbing. Keep chat copy plain, calm, and about what the tool lets them do.
**Forbidden vocabulary in chat:** `PR`, `pull request`, `fork`, `branch`, `repo`, `repository`, `npm`, `MCP`, `MCP server`, `connector` (prefer `tool`), `Phase N`, `ready_to_submit`, `testing_evidence`, `Definition of Done`, `DoD`, `CI`, `automated checks` (prefer "checks"), `package`, `OpenAPI`, `Swagger`, `Postman`, `curl`, `endpoint`, `payload`, `HTTP`, `API` (prefer "their service" or the specific verb).
**Allowed exceptions:**
- `GitHub` is OK only when the user has explicitly chosen the GitHub-attributed path, such as the attribution sub-card.
**Pronouns:**
- Default to "we" during build and testing.
- Use "you" for ownership and decisions: attribution, sharing, keeping private, withdrawing.
**Action-oriented rule:** never ask the user for technical input or permission for technical actions. Do not say "Adding a connector is a protected admin action — may I proceed?" Skill invocation is consent for this flow.
**Translate internal action codes before speaking:**
| Internal action code | Chat-safe phrasing |
| --- | --- |
| `run_tests` | `I need to try it properly before sharing.` |
| `register_server` | `I need to connect it to Rebel first.` |
| `move_to_canonical_path` | `I need to move the files into the right folder before sharing.` |
| `reauth_github` | `Please reconnect GitHub in Settings → Connectors so we can send it out.` |
| `run_software_engineer_workflow` | `Let me think this through properly before I share it.` |
| `missing_evidence` | `I got ahead of myself. Trying it properly now.` |
**Reference docs** (load as needed):
- [mcp_best_practices.md](references/mcp_best_practices.md) - Universal MCP design guidelines
- [node_mcp_server.md](references/node_mcp_server.md) - TypeScript implementation patterns
- [python_mcp_server.md](references/python_mcp_server.md) - Python/FastMCP patterns
- [evaluation.md](references/evaluation.md) - Creating evaluation harnesses
- [mcp-development-standard.md](references/mcp-development-standard.md) - SDK patterns, naming conventions, error handling, module architecture, security baseline, packaging
- [mcp-testing-guide.md](references/mcp-testing-guide.md) - Test strategy, test patterns, debugging common failures
- [contribute-connector.md](references/contribute-connector.md) - Contributing your MCP back to the ecosystem (lifecycle, PR template, quality bar, CI pipeline)
## Key Principles
1. **User's existing codebase is READ-ONLY** - analyze to understand API, never modify
2. **MCP project is created separately** - at `~/mcp-servers/<api-name>-mcp/`
3. **Rebel creates files for the user** - don't just provide snippets to copy
4. **Start small** - 3-5 tools for first iteration (though more tools are fine—Rebel's Super-MCP uses progressive discovery so tool count isn't a hard constraint)
5. **Use subagents for research** - delegate API doc discovery to researcher
## Agent-Centric Design Principles
Before implementation, understand how to design tools for AI agents:
**Build for Workflows, Not Just API Endpoints:**
- Don't simply wrap existing API endpoints - build thoughtful workflow tools
- Consolidate related operations (e.g., `schedule_event` that checks availability AND creates event)
- Focus on tools that enable complete tasks, not just individual API calls
**Optimize for Limited Context:**
- Agents have constrained context windows - make every token count
- Return high-signal information, not exhaustive data dumps
- Provide "concise" vs "detailed" response format options
- Default to human-readable identifiers over technical codes (names over IDs)
**Design Actionable Error Messages:**
- Error messages should guide agents toward correct usage
- Suggest specific next steps: "Try using filter='active_only' to reduce results"
- Help agents learn proper tool usage through clear feedback
**Use Evaluation-Driven Development:**
- Create realistic evaluation scenarios early (see [evaluation.md](references/evaluation.md))
- Let agent feedback drive tool improvements
- Prototype quickly and iterate based on actual agent performance
## Contribution Lifecycle
// internal — do not narrate to user
> **MANDATORY — You MUST call `rebel_mcp_report_contribution_state` after building the connector.** This is not optional. The moment you finish writing the connector code (all source files created, build succeeds), call this tool with `status: "draft"`. This triggers the MCPBuildCard UI that lets the user share their connector with the community. Without this call, the build card never appears and the contribution flow is broken.
Always report build progress using the `rebel_mcp_report_contribution_state` bundled tool. This tracks the build in the conversation UI (MCPBuildCard) and offers the user a one-click "Submit to community" option when ready. Call it regardless of whether the user intends to share — it powers local UI, not submission.
If `rebel_mcp_report_contribution_state` is not listed in your available tools, or `session_id` is missing from your `<dynamic_env>` context, skip all state reporting silently.
**Required parameters for every call:**
- `sessionId`: Use the `session_id` value from your `<dynamic_env>` context (must match exactly)
- `connectorName`: The connector name (e.g. `typeform-mcp`)
- `status`: The checkpoint status (see table below)
- `localServerPath` (**required at `draft` and `ready_to_submit` checkpoints**): The full path to the built connector directory (e.g. `~/mcp-servers/typeform-mcp`). Tilde-prefixed paths are expanded automatically. The same path you wrote to disk is fine — case and trailing slash don't matter.
**PR metadata parameters** (set at `ready_to_submit` checkpoint):
- `prTitle`: Connector-specific PR title, e.g. `feat: add <api-name> connector`. **Required** — without this, the in-app flow defaults to a generic title.
- `prBody`: Rich PR description using the PR Description Template from [contribute-connector.md](references/contribute-connector.md#pr-description-template). **Required** — without this, the in-app flow uses a generic one-liner that gives reviewers no context. See the `ready_to_submit` checkpoint in Phase 6 for the full template and instructions.
**State machine:**
```
draft → testing → ready_to_submit → submitted → ci_pass/ci_fail
→ changes_requested → (re-submit)
→ approved → published
→ rejected
```
**Checkpoints — call `rebel_mcp_report_contribution_state` at each (if tool available):**
| When | Status | Call tool? |
| --------------------------------------- | -------------------------------- | -------------------------------------- |
| After Phase 4 (Implementation complete) | `draft` | Yes |
| Start of Phase 6 (Testing begins) | `testing` | Yes |
| After Phase 6 (Tests pass) | `ready_to_submit` | Yes — include `prTitle` and `prBody` |
| User clicks "Submit" in MCPBuildCard | `submitted` | Handled by in-app contribution service |From mindstone/rebel-system, MIT.
More from mindstone/rebel-system
- 0.520score
extend-mcp-server
mindstone
Guides users through adding new tools or capabilities to an existing connector (MCP server).
SkillAFreshness: AClaude Code +9 - 0.450score
multi-perspective-visual-ideation
mindstone
Generate a rich longlist of image ideas by deliberately spinning up multiple contrasting creative perspectives (comic, infographic, storybook, documentary…
SkillCFreshness: CClaude Code +9 - 0.450score
cross-platform-shell-delay-sleep-wait
mindstone
How to pause/sleep in shell commands on macOS, Linux, and Windows — use this when the agent needs to wait before running the next command.
SkillCFreshness: CClaude Code +9 - 0.449score
read-mac-stickies
mindstone
Read and search Mac Stickies app content — list, filter by color, search by text, or read specific notes
SkillCFreshness: CClaude Code +9 - 0.447score
Anthropic-skill-packager
mindstone
Packages and validates skills for external distribution (zip files).
SkillCFreshness: CClaude Code +9 - 0.444score
git-commit-changes
mindstone
Guidelines for batching changes and writing safe, atomic git commits
SkillCFreshness: CClaude Code +9 - 0.426score
canvas-design
mindstone
Create beautiful visual art in .png and .pdf documents using design philosophy.
SkillCFreshness: CClaude Code +9 - 0.426score
brand-guidelines
mindstone
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel.
SkillCFreshness: CClaude Code +9 - 0.426score
algorithmic-art
mindstone
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration.
SkillCFreshness: CClaude Code +9
Signals
- Stars
- 0
- Forks
- 1
- Open issues
- 0
- Last commit (this folder)
- Jul 29, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/mindstone/rebel-system
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from mindstone
- 0.618score
Google Workspace
mindstone
Google Workspace MCP server for Gmail, Calendar, Drive, Docs, Sheets, Slides, Contacts, and more
ConnectorAFreshness: ALocal★ 13↓ 183/wkClaude Code +5 - 0.610score
Nano Banana
mindstone
Nano Banana MCP server — Google Gemini image generation and editing.
ConnectorAFreshness: ALocal★ 13↓ 92/wkClaude Code +5 - 0.606score
Slack
mindstone
Slack MCP server: channels, messages, threads, reactions, users, files, and scheduled messages
ConnectorAFreshness: ALocal★ 13↓ 66/wkClaude Code +5 - 0.597score
Microsoft 365 Teams
mindstone
Microsoft 365 Teams via Graph: list chats, read/send messages, list teams/channels, presence.
ConnectorAFreshness: ALocal★ 13↓ 43/wkClaude Code +5 - 0.588score
Microsoft Office
mindstone
Microsoft Office MCP server: read and edit Word documents, Excel workbooks, and PowerPoint files
ConnectorBFreshness: BLocal★ 13↓ 411/wkClaude Code +5 - 0.585score
QuickBooks Online
mindstone
QuickBooks Online MCP server: invoices, bills, customers, vendors, employees, and accounts
ConnectorAFreshness: ALocal★ 13↓ 26/wkClaude Code +5
Cite this page
build-custom-mcp-server skill. Agent Mart. https://agentmart.dev/skills/mindstone-build-custom-mcp-server (last updated 2026-10-24)