Skip to content

Conversation

Copy link

Copilot AI commented Nov 11, 2025

Why?

Addresses #5 - adds MCP protocol capabilities (tools, notifications, sampling) and operational observability to the SDD server.

What Changed?

New modules:

  • mcp_server/tools.py - Helper tools for workspace operations:
    • list-artifacts - enumerate specs/tasks
    • create-spec-stub - generate spec files with auto-numbering
    • summarize-diff - text comparison summaries
  • mcp_server/notifications.py - broadcasts workspace file events via send_resource_list_changed()
  • mcp_server/sampling.py - requests client-generated summaries/analysis via MCP sampling protocol
  • mcp_server/logging.py - structured JSON/text logging + health checks

Health endpoints:

  • GET /health - simple liveness check
  • GET /mcp/health - detailed readiness with workspace/prompts status, returns 503 on degraded

Integration:

  • Registered all tools in mcp_server/__init__.py via FastMCP decorators
  • Tools discoverable via FastMCP Inspector

Test coverage:

  • 32 new tests in tests/test_tools_protocol.py covering tools, notifications, sampling, logging
  • All 111 tests pass, 83% coverage maintained

Documentation:

  • Updated docs/operations.md with observability section including health endpoint examples, structured logging config, and helper tool reference

Additional Notes

Environment variables for logging control:

  • SDD_LOG_LEVEL - DEBUG/INFO/WARNING/ERROR (default: INFO)
  • SDD_LOG_FORMAT - json/text (default: json)

Example structured log output:

{
  "timestamp": "2025-11-11T18:24:24.112289+00:00",
  "level": "INFO",
  "logger": "sdd-mcp",
  "message": "MCP server initialized successfully",
  "module": "__init__",
  "function": "create_app",
  "line": 95
}
  • Linked relevant spec/task IDs (e.g., tasks/0002-spec-open-source-ready.md)
  • Ran tests: uv run pytest
  • Ran linters/hooks: uv run pre-commit run --all-files
  • Updated docs or prompts if behavior changed

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • astral.sh
    • Triggering command: curl -LsSf REDACTED (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

Let's work on this issue @liatrio-labs/spec-driven-workflow/issues/5


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 11, 2025

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Comment @coderabbitai help to get the list of available commands and usage tips.

- Add helper tools (list-artifacts, create-spec-stub, summarize-diff)
- Implement notification broadcaster for workspace file events
- Add sampling orchestrator for client-generated summaries
- Add structured logging with JSON/text format support
- Add /mcp/health endpoint with detailed readiness checks
- Create comprehensive test suite with 32 new tests
- Update operations.md with observability guidance and examples

Co-authored-by: RobertKelly <2799387+RobertKelly@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix issue in spec driven workflow feat: implement protocol extensions and observability features Nov 11, 2025
Copilot AI requested a review from RobertKelly November 11, 2025 18:32
Copilot finished work on behalf of RobertKelly November 11, 2025 18:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants