diff --git a/README.md b/README.md index 89d2643..bc4eb63 100644 --- a/README.md +++ b/README.md @@ -15,11 +15,13 @@ This template provides: ## Getting Started -1. **Clone or use this template** +The easiest way to get started is using `degit`: + +1. **Create a new project from this template** ```bash - git clone - cd mcp-typescript-template + npx degit nickytonline/mcp-typescript-template my-mcp-server + cd my-mcp-server ``` 2. **Install dependencies** @@ -41,6 +43,16 @@ This template provides: The server will be available at `http://localhost:3000` for MCP connections. +### Alternative: Using GitHub Template + +You can also click the "Use this template" button on GitHub to create a new repository, then clone it: + +```bash +git clone +cd my-mcp-server +npm install +``` + ## Development ### Watch mode for development (with hot reloading) @@ -83,6 +95,22 @@ npm run format npm run format:check ``` +## Testing Your MCP Server + +You can test your MCP server using the [MCP Inspector](https://github.com/modelcontextprotocol/inspector): + +```bash +npx @modelcontextprotocol/inspector +``` + +This will launch a web interface that allows you to: +- Connect to your MCP server +- Test your tools interactively +- View request/response messages +- Debug your MCP implementation + +Make sure your server is running (using `npm start` or `npm run dev`) before connecting with the inspector. + ## Available Tools The template includes one example tool: diff --git a/test-results.json b/test-results.json index e95951d..e5d3dd4 100644 --- a/test-results.json +++ b/test-results.json @@ -1 +1 @@ -{"numTotalTestSuites":2,"numPassedTestSuites":2,"numFailedTestSuites":0,"numPendingTestSuites":0,"numTotalTests":4,"numPassedTests":4,"numFailedTests":0,"numPendingTests":0,"numTodoTests":0,"snapshot":{"added":0,"failure":false,"filesAdded":0,"filesRemoved":0,"filesRemovedList":[],"filesUnmatched":0,"filesUpdated":0,"matched":0,"total":0,"unchecked":0,"uncheckedKeysByFile":[],"unmatched":0,"updated":0,"didUpdate":false},"startTime":1753977365976,"success":true,"testResults":[{"assertionResults":[{"ancestorTitles":["createTextResult"],"fullName":"createTextResult should create a CallToolResult with correct structure","status":"passed","title":"should create a CallToolResult with correct structure","duration":0.927375000000012,"failureMessages":[],"meta":{}},{"ancestorTitles":["createTextResult"],"fullName":"createTextResult should handle mock data correctly","status":"passed","title":"should handle mock data correctly","duration":0.15808400000000233,"failureMessages":[],"meta":{}},{"ancestorTitles":["createTextResult"],"fullName":"createTextResult should handle null data","status":"passed","title":"should handle null data","duration":0.05737499999997908,"failureMessages":[],"meta":{}},{"ancestorTitles":["createTextResult"],"fullName":"createTextResult should handle undefined data gracefully by converting to null","status":"passed","title":"should handle undefined data gracefully by converting to null","duration":0.07670899999999392,"failureMessages":[],"meta":{}}],"startTime":1753977366165,"endTime":1753977366166.1582,"status":"passed","message":"","name":"/Users/nicktaylor/dev/oss/mcp-typescript-template/src/lib/utils.test.ts"}]} \ No newline at end of file +{"numTotalTestSuites":2,"numPassedTestSuites":2,"numFailedTestSuites":0,"numPendingTestSuites":0,"numTotalTests":4,"numPassedTests":4,"numFailedTests":0,"numPendingTests":0,"numTodoTests":0,"snapshot":{"added":0,"failure":false,"filesAdded":0,"filesRemoved":0,"filesRemovedList":[],"filesUnmatched":0,"filesUpdated":0,"matched":0,"total":0,"unchecked":0,"uncheckedKeysByFile":[],"unmatched":0,"updated":0,"didUpdate":false},"startTime":1760581355543,"success":true,"testResults":[{"assertionResults":[{"ancestorTitles":["createTextResult"],"fullName":"createTextResult should create a CallToolResult with correct structure","status":"passed","title":"should create a CallToolResult with correct structure","duration":2.7596029999999985,"failureMessages":[],"meta":{}},{"ancestorTitles":["createTextResult"],"fullName":"createTextResult should handle mock data correctly","status":"passed","title":"should handle mock data correctly","duration":0.29587399999999775,"failureMessages":[],"meta":{}},{"ancestorTitles":["createTextResult"],"fullName":"createTextResult should handle null data","status":"passed","title":"should handle null data","duration":0.23338599999999587,"failureMessages":[],"meta":{}},{"ancestorTitles":["createTextResult"],"fullName":"createTextResult should handle undefined data gracefully by converting to null","status":"passed","title":"should handle undefined data gracefully by converting to null","duration":0.20286899999999264,"failureMessages":[],"meta":{}}],"startTime":1760581355808,"endTime":1760581355811.296,"status":"passed","message":"","name":"/home/runner/work/mcp-typescript-template/mcp-typescript-template/src/lib/utils.test.ts"}]} \ No newline at end of file