Scaffold, build, and publish TypeScript MCP servers to npm. The TypeScript companion to mcp-creator-python.
This MCP server scaffolds TypeScript MCP projects. It has 10 tools with varying quality. Strengths: all tools have descriptions (80-200+ chars), naming follows verb_noun convention (get_, update_, check_, scaffold_, add_, build_, publish_, setup_, generate_), and most parameters have descriptions. Critical weaknesses: (1) Several tools lack explicit input schemas in the visible source, tool definitions are inferred from function signatures rather than explicit JSON Schema registration. (2) Complex parameters like 'tools' and 'env_vars' are JSON strings rather than structured schema objects, forcing LLMs to construct JSON payloads by hand. (3) No documented output schemas, the code returns JSON.stringify() but never specifies what fields to expect. (4) Error handling is minimal, most tools return JSON errors but lack recovery guidance or categorization. (5) Several tools have undocumented dependencies (e.g., 'build_package' depends on successful scaffolding; 'publish_package' requires build artifacts). Moderate issues: tool composition is reasonable (each tool does one job), but some tools are dangerous without confirmation (publish_package, setup_github are IRREVERSIBLE and lack dry-run support). Parameters on critical tools like 'scaffold_server' are under-constrained (no validation of package_name format, no enum for 'hosting' mode, no description of tool parameter JSON structure).
Add a new tool to an existing scaffolded TypeScript MCP project. Generates the tool file and test, then injects the import and registration into src/index.ts using sentinel comments.
Run 'npm run build' (tsup) in a project directory. Installs dependencies first if node_modules is missing. Returns build output and list of built files.
Check if an npm package name is available. Queries the npm registry — 404 means available, 200 means taken. Suggests alternatives if taken.
Verify your development environment. Checks: Node.js >= 18, npm, npm auth (npm whoami), git, and GitHub CLI (gh). Reports what's missing and how to fix it.
Generate a LAUNCHGUIDE.md file for submitting your MCP server to the MCP Marketplace. Includes tagline, description, use cases, features, getting started, category, and tags.
Load your persistent creator profile from ~/.mcp-creator-typescript/profile.json. Shows setup state, npm username, GitHub username, and project history.
Complex parameters (tools, env_vars, tool, add_project) are JSON strings instead of structured schema objects. LLMs must construct JSON manually, increasing error risk and token waste. The 'tools' parameter for scaffold_server expects '[{"name": ..., "description": ..., "parameters": [...]}]', a nested array with complex structure, but this is only documented in the description string, not in the schema.
No documented output schemas. Tools return JSON strings via JSON.stringify() but the structure is never declared. scaffold_server returns {success, filesCreated, fileList, importInjected, registrationInjected, nextSteps}, but LLMs cannot know this without seeing the code. Proper tool definitions must document 'Returns: {...}' with field descriptions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 69 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 53 | - | v1 |
Run 'npm publish' to publish the package to npm. Requires npm login and a successful build (dist/ must exist).
Generate a complete, runnable TypeScript MCP server project. Creates: package.json, tsconfig, tsup config, src/index.ts with tool registrations, tool modules with TODO stubs, tests, and README. Supports optional license SDK for paid servers. Use hosting='remote' to generate a Streamable HTTP server with Dockerfile for cloud deployment.
Initialize a git repo, create a GitHub repository (public or private), and push. Uses the gh CLI.
Update your persistent creator profile. Save setup state, npm username, GitHub username, default output directory, or add a project to history.
Irreversible tools (publish_package, setup_github) lack confirmation or dry-run support. An LLM could accidentally publish a malformed package to npm or create a public GitHub repo with sensitive data. These tools should support a 'dry_run' parameter or require explicit confirmation.
Error messages lack recovery guidance. When add_tool fails (e.g., 'Could not find src/index.ts'), it tells the LLM the file is missing but not what to do next (scaffold first? check the path?). Errors should guide the agent's next action per pattern:recovery-guide.
Parameter 'hosting' in scaffold_server is documented as a string ('local' or 'remote') but has no enum constraint. An LLM could pass 'remote-docker' or 'aws' and the tool would silently ignore it or fail. Declare hosting as enum: ['local', 'remote'].
Implicit dependencies between tools are not documented. build_package depends on scaffold_server having been called first (node_modules must exist or be installed). publish_package depends on build_package succeeding (dist/ must exist). These chains should be explicit in each tool's description with language like 'Requires: scaffold_server to have been called with same project_dir.'
update_creator_profile has a complex 'add_project' parameter documented as 'JSON string: {"name": "...", "npmUrl": "...", ...}'. This should either be decomposed into separate parameters (project_name, project_npm_url, project_github_url, project_description) or strictly validated with a regex pattern and clear structure specification.
No input validation described. scaffold_server accepts 'package_name' but does not validate npm naming rules (lowercase, hyphens only, no spaces/underscores at start). check_npm_name queries npm but scaffold_server does not check availability first. Tool descriptions should state 'Validates: package name must match npm registry rules (lowercase alphanumeric + hyphens, no leading hyphens/dots).'