tsikol 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +22 -0
  3. data/CONTRIBUTING.md +84 -0
  4. data/LICENSE +21 -0
  5. data/README.md +579 -0
  6. data/Rakefile +12 -0
  7. data/docs/README.md +69 -0
  8. data/docs/api/middleware.md +721 -0
  9. data/docs/api/prompt.md +858 -0
  10. data/docs/api/resource.md +651 -0
  11. data/docs/api/server.md +509 -0
  12. data/docs/api/test-helpers.md +591 -0
  13. data/docs/api/tool.md +527 -0
  14. data/docs/cookbook/authentication.md +651 -0
  15. data/docs/cookbook/caching.md +877 -0
  16. data/docs/cookbook/dynamic-tools.md +970 -0
  17. data/docs/cookbook/error-handling.md +887 -0
  18. data/docs/cookbook/logging.md +1044 -0
  19. data/docs/cookbook/rate-limiting.md +717 -0
  20. data/docs/examples/code-assistant.md +922 -0
  21. data/docs/examples/complete-server.md +726 -0
  22. data/docs/examples/database-manager.md +1198 -0
  23. data/docs/examples/devops-tools.md +1382 -0
  24. data/docs/examples/echo-server.md +501 -0
  25. data/docs/examples/weather-service.md +822 -0
  26. data/docs/guides/completion.md +472 -0
  27. data/docs/guides/getting-started.md +462 -0
  28. data/docs/guides/middleware.md +823 -0
  29. data/docs/guides/project-structure.md +434 -0
  30. data/docs/guides/prompts.md +920 -0
  31. data/docs/guides/resources.md +720 -0
  32. data/docs/guides/sampling.md +804 -0
  33. data/docs/guides/testing.md +863 -0
  34. data/docs/guides/tools.md +627 -0
  35. data/examples/README.md +92 -0
  36. data/examples/advanced_features.rb +129 -0
  37. data/examples/basic-migrated/app/prompts/weather_chat.rb +44 -0
  38. data/examples/basic-migrated/app/resources/weather_alerts.rb +18 -0
  39. data/examples/basic-migrated/app/tools/get_current_weather.rb +34 -0
  40. data/examples/basic-migrated/app/tools/get_forecast.rb +30 -0
  41. data/examples/basic-migrated/app/tools/get_weather_by_coords.rb +48 -0
  42. data/examples/basic-migrated/server.rb +25 -0
  43. data/examples/basic.rb +73 -0
  44. data/examples/full_featured.rb +175 -0
  45. data/examples/middleware_example.rb +112 -0
  46. data/examples/sampling_example.rb +104 -0
  47. data/examples/weather-service/app/prompts/weather/chat.rb +90 -0
  48. data/examples/weather-service/app/resources/weather/alerts.rb +59 -0
  49. data/examples/weather-service/app/tools/weather/get_current.rb +82 -0
  50. data/examples/weather-service/app/tools/weather/get_forecast.rb +90 -0
  51. data/examples/weather-service/server.rb +28 -0
  52. data/exe/tsikol +6 -0
  53. data/lib/tsikol/cli/templates/Gemfile.erb +10 -0
  54. data/lib/tsikol/cli/templates/README.md.erb +38 -0
  55. data/lib/tsikol/cli/templates/gitignore.erb +49 -0
  56. data/lib/tsikol/cli/templates/prompt.rb.erb +53 -0
  57. data/lib/tsikol/cli/templates/resource.rb.erb +29 -0
  58. data/lib/tsikol/cli/templates/server.rb.erb +24 -0
  59. data/lib/tsikol/cli/templates/tool.rb.erb +60 -0
  60. data/lib/tsikol/cli.rb +203 -0
  61. data/lib/tsikol/error_handler.rb +141 -0
  62. data/lib/tsikol/health.rb +198 -0
  63. data/lib/tsikol/http_transport.rb +72 -0
  64. data/lib/tsikol/lifecycle.rb +149 -0
  65. data/lib/tsikol/middleware.rb +168 -0
  66. data/lib/tsikol/prompt.rb +101 -0
  67. data/lib/tsikol/resource.rb +53 -0
  68. data/lib/tsikol/router.rb +190 -0
  69. data/lib/tsikol/server.rb +660 -0
  70. data/lib/tsikol/stdio_transport.rb +108 -0
  71. data/lib/tsikol/test_helpers.rb +261 -0
  72. data/lib/tsikol/tool.rb +111 -0
  73. data/lib/tsikol/version.rb +5 -0
  74. data/lib/tsikol.rb +72 -0
  75. metadata +219 -0
data/Rakefile ADDED
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "bundler/gem_tasks"
4
+ require "rake/testtask"
5
+
6
+ Rake::TestTask.new(:test) do |t|
7
+ t.libs << "test"
8
+ t.libs << "lib"
9
+ t.test_files = FileList["test/**/*_test.rb"]
10
+ end
11
+
12
+ task default: :test
data/docs/README.md ADDED
@@ -0,0 +1,69 @@
1
+ # Tsikol Documentation
2
+
3
+ Welcome to the comprehensive documentation for Tsikol, the Ruby framework for building Model Context Protocol (MCP) servers.
4
+
5
+ ## Documentation Structure
6
+
7
+ ### 📚 Guides
8
+ Step-by-step guides for common tasks:
9
+
10
+ - [Getting Started](guides/getting-started.md) - Your first MCP server
11
+ - [Project Structure](guides/project-structure.md) - Understanding Tsikol projects
12
+ - [Tools Guide](guides/tools.md) - Creating and using tools
13
+ - [Resources Guide](guides/resources.md) - Working with resources
14
+ - [Prompts Guide](guides/prompts.md) - Building AI prompts
15
+ - [Completion Guide](guides/completion.md) - Adding autocomplete
16
+ - [Sampling Guide](guides/sampling.md) - AI-assisted features
17
+ - [Middleware Guide](guides/middleware.md) - Cross-cutting concerns
18
+ - [Testing Guide](guides/testing.md) - Testing your MCP server
19
+
20
+ ### 🔧 API Reference
21
+ Detailed API documentation:
22
+
23
+ - [Server API](api/server.md) - Server class and methods
24
+ - [Tool API](api/tool.md) - Tool class and DSL
25
+ - [Resource API](api/resource.md) - Resource class and DSL
26
+ - [Prompt API](api/prompt.md) - Prompt class and DSL
27
+ - [Middleware API](api/middleware.md) - Middleware system
28
+ - [Test Helpers API](api/test-helpers.md) - Testing utilities
29
+
30
+ ### 📖 Examples
31
+ Complete working examples:
32
+
33
+ - [Echo Server](examples/echo-server.md) - Basic echo server with transformations
34
+ - [Complete Server](examples/complete-server.md) - Full-featured example server
35
+ - [Weather Service](examples/weather-service.md) - Full-featured service
36
+ - [Code Assistant](examples/code-assistant.md) - AI-powered tools
37
+ - [Database Manager](examples/database-manager.md) - Resource-heavy server
38
+ - [DevOps Tools](examples/devops-tools.md) - System automation
39
+
40
+ ### 🍳 Cookbook
41
+ Recipes for common patterns:
42
+
43
+ - [Authentication](cookbook/authentication.md) - Securing your server
44
+ - [Rate Limiting](cookbook/rate-limiting.md) - Preventing abuse
45
+ - [Caching](cookbook/caching.md) - Improving performance
46
+ - [Error Handling](cookbook/error-handling.md) - Robust error management
47
+ - [Logging](cookbook/logging.md) - Effective logging strategies
48
+ - [Dynamic Tools](cookbook/dynamic-tools.md) - Runtime tool generation
49
+
50
+ ## Quick Links
51
+
52
+ - [Installation](guides/getting-started.md#installation)
53
+ - [CLI Usage](guides/getting-started.md#cli-usage)
54
+ - [Basic Concepts](guides/getting-started.md#basic-concepts)
55
+ - [MCP Protocol](guides/getting-started.md#understanding-mcp)
56
+
57
+ ## For AI Assistants
58
+
59
+ If you're an AI assistant helping developers build MCP servers with Tsikol:
60
+
61
+ 1. Start with the [Getting Started Guide](guides/getting-started.md)
62
+ 2. Use the [CLI](guides/getting-started.md#cli-usage) to scaffold projects
63
+ 3. Reference the [API docs](api/) for detailed method signatures
64
+ 4. Check the [Examples](examples/) for complete implementations
65
+ 5. Consult the [Cookbook](cookbook/) for specific patterns
66
+
67
+ ## Contributing
68
+
69
+ See our [Contributing Guide](../CONTRIBUTING.md) for information on contributing to Tsikol.