Skip to content

RubyLLM::MCP::Errors::TimeoutError SSE #68

@seocahill

Description

@seocahill

Thanks for your hard work.

I'm probably making a very simple mistake here, so apologies in advance, I doubt this is a bug.

I'm proxying an sse server from a k8s cluster, works fine with cursor for example.

With this lib however I keep getting timeout no matter how long I set it to:

 pry(main)> `curl -v http://localhost:8000/sse` # sanity
* Host localhost:8000 was resolved.
* IPv6: ::1
* IPv4: 127.0.0.1
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying [::1]:8000...
* Connected to localhost (::1) port 8000
> GET /sse HTTP/1.1
> Host: localhost:8000
> User-Agent: curl/8.7.1
> Accept: */*
> 
* Request completely sent off
< HTTP/1.1 200 OK
< date: Fri, 19 Sep 2025 09:38:21 GMT
< server: uvicorn
< cache-control: no-store
< connection: keep-alive
< x-accel-buffering: no
< content-type: text/event-stream; charset=utf-8
< Transfer-Encoding: chunked
< 
{ [87 bytes data]
100    81    0    81    0     0     25      0 --:--:--  0:00:03 --:--:--    25^CInterrupt: 
[8] pry(main)> client = RubyLLM::MCP.client(
  name: "postgres-database",
  transport_type: :sse,
  config: {
    url: "http://localhost:8000/sse"
  },
)
I, [2025-09-19T11:40:00.669839 #187]  INFO -- RubyLLM::MCP: Initializing SSE transport to http://127.0.0.1:8000/sse with client ID 56ce0f33-56d6-4107-873c-cf2e4f0fe235
I, [2025-09-19T11:40:00.669892 #187]  INFO -- RubyLLM::MCP: Starting SSE listener thread
RubyLLM::MCP::Errors::TimeoutError: Request timed out after 8 seconds
from /Users/seosamh/.rbenv/versions/3.1.7/lib/ruby/gems/3.1.0/gems/ruby_llm-mcp-0.5.1/lib/ruby_llm/mcp/transports/timeout.rb:23:in `with_timeout'

I'm running quite an old version of ruby / rails (7.1 and 3.1.7). Seems like it should be supported but perhaps that's the issue? The working cursor mcp config is identical to the args passed in the ruby method call above.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions