diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index 1be391b0d..e9238a1e2 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -1,7 +1,7 @@
blank_issues_enabled: true
contact_links:
- name: Ask a Question
- url: https://github.com/mark3labs/mcp-go/discussions/categories/q-a
+ url: https://github.com/rickey17/mcp-go/discussions/categories/q-a
about: Ask any question about the project.
- name: Join the Community
url: https://discord.gg/RqSS2NQVsY
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
index 042f3c33b..b17541b3b 100644
--- a/CODE_OF_CONDUCT.md
+++ b/CODE_OF_CONDUCT.md
@@ -60,7 +60,7 @@ representative at an online or offline event.
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
-[contact@mark3labs.com](mailto:contact@mark3labs.com).
+[contact@rickey17.com](mailto:contact@rickey17.com).
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index d980370e0..8e2520331 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -39,4 +39,4 @@ go version
```
5. Submit a pull request to the main branch.
-Feel free to reach out if you have any questions or need help either by [opening an issue](https://github.com/mark3labs/mcp-go/issues) or by reaching out in the [Discord channel](https://discord.gg/RqSS2NQVsY).
+Feel free to reach out if you have any questions or need help either by [opening an issue](https://github.com/rickey17/mcp-go/issues) or by reaching out in the [Discord channel](https://discord.gg/RqSS2NQVsY).
diff --git a/README.md b/README.md
index f047c3f47..0a028ba7f 100644
--- a/README.md
+++ b/README.md
@@ -2,9 +2,9 @@

-[](https://github.com/mark3labs/mcp-go/actions/workflows/ci.yml)
-[](https://goreportcard.com/report/github.com/mark3labs/mcp-go)
-[](https://pkg.go.dev/github.com/mark3labs/mcp-go)
+[](https://github.com/rickey17/mcp-go/actions/workflows/ci.yml)
+[](https://goreportcard.com/report/github.com/rickey17/mcp-go)
+[](https://pkg.go.dev/github.com/rickey17/mcp-go)
A Go implementation of the Model Context Protocol (MCP), enabling seamless integration between LLM applications and external data sources and tools.
@@ -26,8 +26,8 @@ import (
"context"
"fmt"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
func main() {
@@ -106,7 +106,7 @@ MCP Go handles all the complex protocol details and server management, so you ca
## Installation
```bash
-go get github.com/mark3labs/mcp-go
+go get github.com/rickey17/mcp-go
```
## Quickstart
@@ -120,8 +120,8 @@ import (
"context"
"fmt"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
func main() {
diff --git a/SECURITY.md b/SECURITY.md
index 342a2abd5..a6c785c24 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -4,4 +4,4 @@ Thank you for helping us improve the security of the project. Your contributions
## Reporting a Vulnerability
-If you discover a security vulnerability within this project, please email the maintainers at [contact@mark3labs.com](mailto:contact@mark3labs.com).
+If you discover a security vulnerability within this project, please email the maintainers at [contact@rickey17.com](mailto:contact@rickey17.com).
diff --git a/client/client.go b/client/client.go
index cda7665ef..083c2b16f 100644
--- a/client/client.go
+++ b/client/client.go
@@ -9,8 +9,8 @@ import (
"sync"
"sync/atomic"
- "github.com/mark3labs/mcp-go/client/transport"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/client/transport"
+ "github.com/rickey17/mcp-go/mcp"
)
// Client implements the MCP client.
diff --git a/client/http.go b/client/http.go
index d001a1e63..6115ed16f 100644
--- a/client/http.go
+++ b/client/http.go
@@ -3,7 +3,7 @@ package client
import (
"fmt"
- "github.com/mark3labs/mcp-go/client/transport"
+ "github.com/rickey17/mcp-go/client/transport"
)
// NewStreamableHttpClient is a convenience method that creates a new streamable-http-based MCP client
diff --git a/client/http_test.go b/client/http_test.go
index 514004857..917d775b0 100644
--- a/client/http_test.go
+++ b/client/http_test.go
@@ -8,9 +8,9 @@ import (
"time"
"github.com/google/uuid"
- "github.com/mark3labs/mcp-go/client/transport"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/client/transport"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
func TestHTTPClient(t *testing.T) {
diff --git a/client/inprocess.go b/client/inprocess.go
index 62d28794d..9cafd686d 100644
--- a/client/inprocess.go
+++ b/client/inprocess.go
@@ -3,9 +3,9 @@ package client
import (
"context"
- "github.com/mark3labs/mcp-go/client/transport"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/client/transport"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
// NewInProcessClient connect directly to a mcp server object in the same process
diff --git a/client/inprocess_sampling_test.go b/client/inprocess_sampling_test.go
index 087109e43..4ae7d60e4 100644
--- a/client/inprocess_sampling_test.go
+++ b/client/inprocess_sampling_test.go
@@ -4,8 +4,8 @@ import (
"context"
"testing"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
// MockSamplingHandler implements SamplingHandler for testing
diff --git a/client/inprocess_test.go b/client/inprocess_test.go
index 7b150e81e..c220dc182 100644
--- a/client/inprocess_test.go
+++ b/client/inprocess_test.go
@@ -4,8 +4,8 @@ import (
"context"
"testing"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
func TestInProcessMCPClient(t *testing.T) {
diff --git a/client/interface.go b/client/interface.go
index 233ca495a..749fb614f 100644
--- a/client/interface.go
+++ b/client/interface.go
@@ -4,7 +4,7 @@ package client
import (
"context"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/mcp"
)
// MCPClient represents an MCP client interface
diff --git a/client/oauth.go b/client/oauth.go
index d6e3ceb99..782d9c811 100644
--- a/client/oauth.go
+++ b/client/oauth.go
@@ -4,7 +4,7 @@ import (
"errors"
"fmt"
- "github.com/mark3labs/mcp-go/client/transport"
+ "github.com/rickey17/mcp-go/client/transport"
)
// OAuthConfig is a convenience type that wraps transport.OAuthConfig
diff --git a/client/oauth_test.go b/client/oauth_test.go
index 4504a0727..f939bdc28 100644
--- a/client/oauth_test.go
+++ b/client/oauth_test.go
@@ -9,7 +9,7 @@ import (
"testing"
"time"
- "github.com/mark3labs/mcp-go/client/transport"
+ "github.com/rickey17/mcp-go/client/transport"
)
func TestNewOAuthStreamableHttpClient(t *testing.T) {
diff --git a/client/protocol_negotiation_test.go b/client/protocol_negotiation_test.go
index 022b7fc6d..90c3d365b 100644
--- a/client/protocol_negotiation_test.go
+++ b/client/protocol_negotiation_test.go
@@ -7,8 +7,8 @@ import (
"strings"
"testing"
- "github.com/mark3labs/mcp-go/client/transport"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/client/transport"
+ "github.com/rickey17/mcp-go/mcp"
)
// mockProtocolTransport implements transport.Interface for testing protocol negotiation
diff --git a/client/sampling.go b/client/sampling.go
index 245e2c1f7..94a086b03 100644
--- a/client/sampling.go
+++ b/client/sampling.go
@@ -3,7 +3,7 @@ package client
import (
"context"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/mcp"
)
// SamplingHandler defines the interface for handling sampling requests from servers.
diff --git a/client/sampling_test.go b/client/sampling_test.go
index 60f533221..be258f838 100644
--- a/client/sampling_test.go
+++ b/client/sampling_test.go
@@ -5,8 +5,8 @@ import (
"encoding/json"
"testing"
- "github.com/mark3labs/mcp-go/client/transport"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/client/transport"
+ "github.com/rickey17/mcp-go/mcp"
)
// mockSamplingHandler implements SamplingHandler for testing
diff --git a/client/sse.go b/client/sse.go
index 07512a9be..13be17125 100644
--- a/client/sse.go
+++ b/client/sse.go
@@ -5,7 +5,7 @@ import (
"net/http"
"net/url"
- "github.com/mark3labs/mcp-go/client/transport"
+ "github.com/rickey17/mcp-go/client/transport"
)
func WithHeaders(headers map[string]string) transport.ClientOption {
diff --git a/client/sse_test.go b/client/sse_test.go
index f38c31b17..7035fffb8 100644
--- a/client/sse_test.go
+++ b/client/sse_test.go
@@ -6,10 +6,10 @@ import (
"testing"
"time"
- "github.com/mark3labs/mcp-go/client/transport"
+ "github.com/rickey17/mcp-go/client/transport"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
type contextKey string
diff --git a/client/stdio.go b/client/stdio.go
index 199ec14c3..98e14febf 100644
--- a/client/stdio.go
+++ b/client/stdio.go
@@ -5,7 +5,7 @@ import (
"fmt"
"io"
- "github.com/mark3labs/mcp-go/client/transport"
+ "github.com/rickey17/mcp-go/client/transport"
)
// NewStdioMCPClient creates a new stdio-based MCP client that communicates with a subprocess.
diff --git a/client/stdio_test.go b/client/stdio_test.go
index 7eb6dd38a..84ced5b4a 100644
--- a/client/stdio_test.go
+++ b/client/stdio_test.go
@@ -14,8 +14,8 @@ import (
"github.com/stretchr/testify/require"
- "github.com/mark3labs/mcp-go/client/transport"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/client/transport"
+ "github.com/rickey17/mcp-go/mcp"
)
func compileTestServer(outputPath string) error {
diff --git a/client/transport/inprocess.go b/client/transport/inprocess.go
index 59c70940b..32911f102 100644
--- a/client/transport/inprocess.go
+++ b/client/transport/inprocess.go
@@ -6,8 +6,8 @@ import (
"fmt"
"sync"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
type InProcessTransport struct {
diff --git a/client/transport/interface.go b/client/transport/interface.go
index e6feeb742..d867282e9 100644
--- a/client/transport/interface.go
+++ b/client/transport/interface.go
@@ -4,7 +4,7 @@ import (
"context"
"encoding/json"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/mcp"
)
// HTTPHeaderFunc is a function that extracts header entries from the given context
diff --git a/client/transport/sse.go b/client/transport/sse.go
index 70a391905..0f4d4b25f 100644
--- a/client/transport/sse.go
+++ b/client/transport/sse.go
@@ -15,8 +15,8 @@ import (
"sync/atomic"
"time"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/util"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/util"
)
// SSE implements the transport layer of the MCP protocol using Server-Sent Events (SSE).
@@ -36,12 +36,12 @@ type SSE struct {
headerFunc HTTPHeaderFunc
logger util.Logger
- started atomic.Bool
- closed atomic.Bool
- cancelSSEStream context.CancelFunc
- protocolVersion atomic.Value // string
- onConnectionLost func(error)
- connectionLostMu sync.RWMutex
+ started atomic.Bool
+ closed atomic.Bool
+ cancelSSEStream context.CancelFunc
+ protocolVersion atomic.Value // string
+ onConnectionLost func(error)
+ connectionLostMu sync.RWMutex
// OAuth support
oauthHandler *OAuthHandler
@@ -220,7 +220,7 @@ func (c *SSE) readSSE(reader io.ReadCloser) {
c.connectionLostMu.RLock()
handler := c.onConnectionLost
c.connectionLostMu.RUnlock()
-
+
if handler != nil {
// This is not actually an error - HTTP2 idle timeout disconnection
handler(err)
diff --git a/client/transport/sse_test.go b/client/transport/sse_test.go
index 31c70887f..3270e6f7c 100644
--- a/client/transport/sse_test.go
+++ b/client/transport/sse_test.go
@@ -13,7 +13,7 @@ import (
"testing"
"time"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/mcp"
"github.com/stretchr/testify/require"
)
diff --git a/client/transport/stdio.go b/client/transport/stdio.go
index f3a95f4b0..b9f0ae993 100644
--- a/client/transport/stdio.go
+++ b/client/transport/stdio.go
@@ -11,8 +11,8 @@ import (
"os/exec"
"sync"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/util"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/util"
)
// Stdio implements the transport layer of the MCP protocol using stdio communication.
diff --git a/client/transport/stdio_test.go b/client/transport/stdio_test.go
index 18aa932e8..ec0f12b82 100644
--- a/client/transport/stdio_test.go
+++ b/client/transport/stdio_test.go
@@ -16,7 +16,7 @@ import (
"testing"
"time"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/mcp"
"github.com/stretchr/testify/require"
)
diff --git a/client/transport/streamable_http.go b/client/transport/streamable_http.go
index 268aeb342..7ac13c101 100644
--- a/client/transport/streamable_http.go
+++ b/client/transport/streamable_http.go
@@ -16,8 +16,8 @@ import (
"sync/atomic"
"time"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/util"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/util"
)
type StreamableHTTPCOption func(*StreamableHTTP)
@@ -605,7 +605,7 @@ func (c *StreamableHTTP) listenForever(ctx context.Context) {
connectCtx, cancel := context.WithTimeout(ctx, 10*time.Second)
err := c.createGETConnectionToServer(connectCtx)
cancel()
-
+
if errors.Is(err, ErrGetMethodNotAllowed) {
// server does not support listening
c.logger.Errorf("server does not support listening")
@@ -621,7 +621,7 @@ func (c *StreamableHTTP) listenForever(ctx context.Context) {
if err != nil {
c.logger.Errorf("failed to listen to server. retry in 1 second: %v", err)
}
-
+
// Use context-aware sleep
select {
case <-time.After(retryInterval):
@@ -704,15 +704,15 @@ func (c *StreamableHTTP) handleIncomingRequest(ctx context.Context, request JSON
// Create a new context with timeout for request handling, respecting parent context
requestCtx, cancel := context.WithTimeout(ctx, 30*time.Second)
defer cancel()
-
+
response, err := handler(requestCtx, request)
if err != nil {
c.logger.Errorf("error handling request %s: %v", request.Method, err)
-
+
// Determine appropriate JSON-RPC error code based on error type
var errorCode int
var errorMessage string
-
+
// Check for specific sampling-related errors
if errors.Is(err, context.Canceled) {
errorCode = -32800 // Request cancelled
@@ -731,7 +731,7 @@ func (c *StreamableHTTP) handleIncomingRequest(ctx context.Context, request JSON
errorMessage = err.Error()
}
}
-
+
// Send error response
errorResponse := &JSONRPCResponse{
JSONRPC: "2.0",
diff --git a/client/transport/streamable_http_oauth_test.go b/client/transport/streamable_http_oauth_test.go
index 8b992ddeb..62aee4f96 100644
--- a/client/transport/streamable_http_oauth_test.go
+++ b/client/transport/streamable_http_oauth_test.go
@@ -9,7 +9,7 @@ import (
"testing"
"time"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/mcp"
)
func TestStreamableHTTP_WithOAuth(t *testing.T) {
diff --git a/client/transport/streamable_http_sampling_test.go b/client/transport/streamable_http_sampling_test.go
index edba61eac..e9d805a75 100644
--- a/client/transport/streamable_http_sampling_test.go
+++ b/client/transport/streamable_http_sampling_test.go
@@ -11,32 +11,32 @@ import (
"testing"
"time"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/mcp"
)
// TestStreamableHTTP_SamplingFlow tests the complete sampling flow with HTTP transport
func TestStreamableHTTP_SamplingFlow(t *testing.T) {
- // Create simple test server
+ // Create simple test server
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
// Just respond OK to any requests
w.WriteHeader(http.StatusOK)
}))
defer server.Close()
-
+
// Create HTTP client transport
client, err := NewStreamableHTTP(server.URL)
if err != nil {
t.Fatalf("Failed to create client: %v", err)
}
defer client.Close()
-
+
// Set up sampling request handler
var handledRequest *JSONRPCRequest
handlerCalled := make(chan struct{})
client.SetRequestHandler(func(ctx context.Context, request JSONRPCRequest) (*JSONRPCResponse, error) {
handledRequest = &request
close(handlerCalled)
-
+
// Simulate sampling handler response
result := map[string]any{
"role": "assistant",
@@ -47,25 +47,25 @@ func TestStreamableHTTP_SamplingFlow(t *testing.T) {
"model": "test-model",
"stopReason": "stop_sequence",
}
-
+
resultBytes, _ := json.Marshal(result)
-
+
return &JSONRPCResponse{
JSONRPC: "2.0",
ID: request.ID,
Result: resultBytes,
}, nil
})
-
+
// Start the client
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
-
+
err = client.Start(ctx)
if err != nil {
t.Fatalf("Failed to start client: %v", err)
}
-
+
// Test direct request handling (simulating a sampling request)
samplingRequest := JSONRPCRequest{
JSONRPC: "2.0",
@@ -83,10 +83,10 @@ func TestStreamableHTTP_SamplingFlow(t *testing.T) {
},
},
}
-
+
// Directly test request handling
client.handleIncomingRequest(ctx, samplingRequest)
-
+
// Wait for handler to be called
select {
case <-handlerCalled:
@@ -94,12 +94,12 @@ func TestStreamableHTTP_SamplingFlow(t *testing.T) {
case <-time.After(1 * time.Second):
t.Fatal("Handler was not called within timeout")
}
-
+
// Verify the request was handled
if handledRequest == nil {
t.Fatal("Sampling request was not handled")
}
-
+
if handledRequest.Method != string(mcp.MethodSamplingCreateMessage) {
t.Errorf("Expected method %s, got %s", mcp.MethodSamplingCreateMessage, handledRequest.Method)
}
@@ -109,7 +109,7 @@ func TestStreamableHTTP_SamplingFlow(t *testing.T) {
func TestStreamableHTTP_SamplingErrorHandling(t *testing.T) {
var errorHandled sync.WaitGroup
errorHandled.Add(1)
-
+
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if r.Method == http.MethodPost {
var body map[string]any
@@ -118,7 +118,7 @@ func TestStreamableHTTP_SamplingErrorHandling(t *testing.T) {
w.WriteHeader(http.StatusOK)
return
}
-
+
// Check if this is an error response
if errorField, ok := body["error"]; ok {
errorMap := errorField.(map[string]any)
@@ -132,25 +132,25 @@ func TestStreamableHTTP_SamplingErrorHandling(t *testing.T) {
w.WriteHeader(http.StatusOK)
}))
defer server.Close()
-
+
client, err := NewStreamableHTTP(server.URL)
if err != nil {
t.Fatalf("Failed to create client: %v", err)
}
defer client.Close()
-
+
// Set up request handler that returns an error
client.SetRequestHandler(func(ctx context.Context, request JSONRPCRequest) (*JSONRPCResponse, error) {
return nil, fmt.Errorf("sampling failed")
})
-
+
// Start the client
ctx := context.Background()
err = client.Start(ctx)
if err != nil {
t.Fatalf("Failed to start client: %v", err)
}
-
+
// Simulate incoming sampling request
samplingRequest := JSONRPCRequest{
JSONRPC: "2.0",
@@ -158,10 +158,10 @@ func TestStreamableHTTP_SamplingErrorHandling(t *testing.T) {
Method: string(mcp.MethodSamplingCreateMessage),
Params: map[string]any{},
}
-
+
// This should trigger error handling
client.handleIncomingRequest(ctx, samplingRequest)
-
+
// Wait for error to be handled
errorHandled.Wait()
}
@@ -170,7 +170,7 @@ func TestStreamableHTTP_SamplingErrorHandling(t *testing.T) {
func TestStreamableHTTP_NoSamplingHandler(t *testing.T) {
var errorReceived bool
errorReceivedChan := make(chan struct{})
-
+
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if r.Method == http.MethodPost {
var body map[string]any
@@ -179,12 +179,12 @@ func TestStreamableHTTP_NoSamplingHandler(t *testing.T) {
w.WriteHeader(http.StatusOK)
return
}
-
+
// Check if this is an error response with method not found
if errorField, ok := body["error"]; ok {
errorMap := errorField.(map[string]any)
if code, ok := errorMap["code"].(float64); ok && code == -32601 {
- if message, ok := errorMap["message"].(string); ok &&
+ if message, ok := errorMap["message"].(string); ok &&
strings.Contains(message, "no handler configured") {
errorReceived = true
close(errorReceivedChan)
@@ -195,21 +195,21 @@ func TestStreamableHTTP_NoSamplingHandler(t *testing.T) {
w.WriteHeader(http.StatusOK)
}))
defer server.Close()
-
+
client, err := NewStreamableHTTP(server.URL)
if err != nil {
t.Fatalf("Failed to create client: %v", err)
}
defer client.Close()
-
+
// Don't set any request handler
-
+
ctx := context.Background()
err = client.Start(ctx)
if err != nil {
t.Fatalf("Failed to start client: %v", err)
}
-
+
// Simulate incoming sampling request
samplingRequest := JSONRPCRequest{
JSONRPC: "2.0",
@@ -217,10 +217,10 @@ func TestStreamableHTTP_NoSamplingHandler(t *testing.T) {
Method: string(mcp.MethodSamplingCreateMessage),
Params: map[string]any{},
}
-
+
// This should trigger "method not found" error
client.handleIncomingRequest(ctx, samplingRequest)
-
+
// Wait for error to be received
select {
case <-errorReceivedChan:
@@ -228,7 +228,7 @@ func TestStreamableHTTP_NoSamplingHandler(t *testing.T) {
case <-time.After(1 * time.Second):
t.Fatal("Method not found error was not received within timeout")
}
-
+
if !errorReceived {
t.Error("Expected method not found error, but didn't receive it")
}
@@ -241,13 +241,13 @@ func TestStreamableHTTP_BidirectionalInterface(t *testing.T) {
t.Fatalf("Failed to create client: %v", err)
}
defer client.Close()
-
+
// Verify it implements BidirectionalInterface
_, ok := any(client).(BidirectionalInterface)
if !ok {
t.Error("StreamableHTTP should implement BidirectionalInterface")
}
-
+
// Test SetRequestHandler
handlerSet := false
handlerSetChan := make(chan struct{})
@@ -256,7 +256,7 @@ func TestStreamableHTTP_BidirectionalInterface(t *testing.T) {
close(handlerSetChan)
return nil, nil
})
-
+
// Verify handler was set by triggering it
ctx := context.Background()
client.handleIncomingRequest(ctx, JSONRPCRequest{
@@ -264,7 +264,7 @@ func TestStreamableHTTP_BidirectionalInterface(t *testing.T) {
ID: mcp.NewRequestId(1),
Method: "test",
})
-
+
// Wait for handler to be called
select {
case <-handlerSetChan:
@@ -272,7 +272,7 @@ func TestStreamableHTTP_BidirectionalInterface(t *testing.T) {
case <-time.After(1 * time.Second):
t.Fatal("Handler was not called within timeout")
}
-
+
if !handlerSet {
t.Error("Request handler was not properly set or called")
}
@@ -315,16 +315,16 @@ func TestStreamableHTTP_ConcurrentSamplingRequests(t *testing.T) {
// Track which requests have been received and their completion order
var requestOrder []int
var orderMutex sync.Mutex
-
+
// Set up request handler that simulates different processing times
client.SetRequestHandler(func(ctx context.Context, request JSONRPCRequest) (*JSONRPCResponse, error) {
// Extract request ID to determine processing time
requestIDValue := request.ID.Value()
-
+
var delay time.Duration
var responseText string
var requestNum int
-
+
// First request (ID 1) takes longer, second request (ID 2) completes faster
if requestIDValue == int64(1) {
delay = 100 * time.Millisecond
@@ -341,7 +341,7 @@ func TestStreamableHTTP_ConcurrentSamplingRequests(t *testing.T) {
// Simulate processing time
time.Sleep(delay)
-
+
// Record completion order
orderMutex.Lock()
requestOrder = append(requestOrder, requestNum)
@@ -428,7 +428,7 @@ func TestStreamableHTTP_ConcurrentSamplingRequests(t *testing.T) {
// Verify completion order: request 2 should complete first
orderMutex.Lock()
defer orderMutex.Unlock()
-
+
if len(requestOrder) != 2 {
t.Fatalf("Expected 2 completed requests, got %d", len(requestOrder))
}
@@ -493,4 +493,4 @@ func TestStreamableHTTP_ConcurrentSamplingRequests(t *testing.T) {
}
}
}
-}
\ No newline at end of file
+}
diff --git a/client/transport/streamable_http_test.go b/client/transport/streamable_http_test.go
index 5208cb9c3..d056d2e37 100644
--- a/client/transport/streamable_http_test.go
+++ b/client/transport/streamable_http_test.go
@@ -12,7 +12,7 @@ import (
"testing"
"time"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/mcp"
)
// startMockStreamableHTTPServer starts a test HTTP server that implements
diff --git a/examples/custom_context/main.go b/examples/custom_context/main.go
index e41ab8db7..4f3476cab 100644
--- a/examples/custom_context/main.go
+++ b/examples/custom_context/main.go
@@ -10,8 +10,8 @@ import (
"net/http"
"os"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
// authKey is a custom context key for storing the auth token.
diff --git a/examples/dynamic_path/main.go b/examples/dynamic_path/main.go
index 80d96789a..c25f2d0ad 100644
--- a/examples/dynamic_path/main.go
+++ b/examples/dynamic_path/main.go
@@ -7,8 +7,8 @@ import (
"log"
"net/http"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
func main() {
diff --git a/examples/everything/main.go b/examples/everything/main.go
index 620f5936a..4380a62a3 100644
--- a/examples/everything/main.go
+++ b/examples/everything/main.go
@@ -9,8 +9,8 @@ import (
"strconv"
"time"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
type ToolName string
diff --git a/examples/filesystem_stdio_client/main.go b/examples/filesystem_stdio_client/main.go
index 3dcd89fa7..513b6f51d 100644
--- a/examples/filesystem_stdio_client/main.go
+++ b/examples/filesystem_stdio_client/main.go
@@ -7,8 +7,8 @@ import (
"log"
"time"
- "github.com/mark3labs/mcp-go/client"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/client"
+ "github.com/rickey17/mcp-go/mcp"
)
func main() {
diff --git a/examples/in_process/main.go b/examples/in_process/main.go
index d01a5e808..49862b450 100644
--- a/examples/in_process/main.go
+++ b/examples/in_process/main.go
@@ -6,9 +6,9 @@ import (
"log"
"time"
- "github.com/mark3labs/mcp-go/client"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/client"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
// handleDummyTool is a simple tool that returns "foo bar"
diff --git a/examples/inprocess_sampling/main.go b/examples/inprocess_sampling/main.go
index a50ee6434..3d6258cbf 100644
--- a/examples/inprocess_sampling/main.go
+++ b/examples/inprocess_sampling/main.go
@@ -5,9 +5,9 @@ import (
"fmt"
"log"
- "github.com/mark3labs/mcp-go/client"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/client"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
// MockSamplingHandler implements client.SamplingHandler for demonstration
diff --git a/examples/oauth_client/main.go b/examples/oauth_client/main.go
index 639d8cb7a..1c9b7a8d8 100644
--- a/examples/oauth_client/main.go
+++ b/examples/oauth_client/main.go
@@ -9,8 +9,8 @@ import (
"os/exec"
"runtime"
- "github.com/mark3labs/mcp-go/client"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/client"
+ "github.com/rickey17/mcp-go/mcp"
)
const (
diff --git a/examples/sampling_client/main.go b/examples/sampling_client/main.go
index 093b59817..8a7b6e754 100644
--- a/examples/sampling_client/main.go
+++ b/examples/sampling_client/main.go
@@ -8,9 +8,9 @@ import (
"os/signal"
"syscall"
- "github.com/mark3labs/mcp-go/client"
- "github.com/mark3labs/mcp-go/client/transport"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/client"
+ "github.com/rickey17/mcp-go/client/transport"
+ "github.com/rickey17/mcp-go/mcp"
)
// MockSamplingHandler implements the SamplingHandler interface for demonstration.
@@ -95,7 +95,7 @@ func main() {
// Setup graceful shutdown
sigChan := make(chan os.Signal, 1)
signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM)
-
+
// Create a context that cancels on signal
ctx, cancel := context.WithCancel(ctx)
go func() {
@@ -103,7 +103,7 @@ func main() {
log.Println("Received shutdown signal, closing client...")
cancel()
}()
-
+
// Move defer after error checking
defer func() {
if err := mcpClient.Close(); err != nil {
diff --git a/examples/sampling_http_client/main.go b/examples/sampling_http_client/main.go
index 98817e6f8..09f7964fe 100644
--- a/examples/sampling_http_client/main.go
+++ b/examples/sampling_http_client/main.go
@@ -8,9 +8,9 @@ import (
"os/signal"
"syscall"
- "github.com/mark3labs/mcp-go/client"
- "github.com/mark3labs/mcp-go/client/transport"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/client"
+ "github.com/rickey17/mcp-go/client/transport"
+ "github.com/rickey17/mcp-go/mcp"
)
// MockSamplingHandler implements client.SamplingHandler for demonstration.
@@ -63,7 +63,7 @@ func main() {
log.Fatalf("Failed to create HTTP transport: %v", err)
}
defer httpTransport.Close()
-
+
// Create client with sampling support
mcpClient := client.NewClient(
httpTransport,
@@ -81,7 +81,7 @@ func main() {
initRequest := mcp.InitializeRequest{
Params: mcp.InitializeParams{
ProtocolVersion: mcp.LATEST_PROTOCOL_VERSION,
- Capabilities: mcp.ClientCapabilities{
+ Capabilities: mcp.ClientCapabilities{
// Sampling capability will be automatically added by the client
},
ClientInfo: mcp.Implementation{
@@ -90,7 +90,7 @@ func main() {
},
},
}
-
+
_, err = mcpClient.Initialize(ctx, initRequest)
if err != nil {
log.Fatalf("Failed to initialize MCP session: %v", err)
@@ -102,7 +102,7 @@ func main() {
// In a real application, you would keep the client running to handle sampling requests
// For this example, we'll just demonstrate that it's working
-
+
// Keep the client running (in a real app, you'd have your main application logic here)
sigChan := make(chan os.Signal, 1)
signal.Notify(sigChan, os.Interrupt, syscall.SIGTERM)
@@ -113,4 +113,4 @@ func main() {
case <-sigChan:
log.Println("Received shutdown signal")
}
-}
\ No newline at end of file
+}
diff --git a/examples/sampling_http_server/main.go b/examples/sampling_http_server/main.go
index 95a2bf29b..a01cbb691 100644
--- a/examples/sampling_http_server/main.go
+++ b/examples/sampling_http_server/main.go
@@ -6,8 +6,8 @@ import (
"log"
"time"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
func main() {
@@ -147,4 +147,4 @@ func main() {
if err := httpServer.Start(":8080"); err != nil {
log.Fatalf("Server failed to start: %v", err)
}
-}
\ No newline at end of file
+}
diff --git a/examples/sampling_server/main.go b/examples/sampling_server/main.go
index ea887c588..9ccd843a4 100644
--- a/examples/sampling_server/main.go
+++ b/examples/sampling_server/main.go
@@ -6,8 +6,8 @@ import (
"log"
"time"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
func main() {
diff --git a/examples/simple_client/main.go b/examples/simple_client/main.go
index c0f48593a..2de135da6 100644
--- a/examples/simple_client/main.go
+++ b/examples/simple_client/main.go
@@ -9,9 +9,9 @@ import (
"os"
"time"
- "github.com/mark3labs/mcp-go/client"
- "github.com/mark3labs/mcp-go/client/transport"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/client"
+ "github.com/rickey17/mcp-go/client/transport"
+ "github.com/rickey17/mcp-go/mcp"
)
func main() {
diff --git a/examples/structured_input_and_output/main.go b/examples/structured_input_and_output/main.go
index f932def08..9271e0bde 100644
--- a/examples/structured_input_and_output/main.go
+++ b/examples/structured_input_and_output/main.go
@@ -5,8 +5,8 @@ import (
"fmt"
"time"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
// Note: The jsonschema_description tag is added to the JSON schema as description
diff --git a/examples/typed_tools/main.go b/examples/typed_tools/main.go
index f9bd3c21e..7d7578c9f 100644
--- a/examples/typed_tools/main.go
+++ b/examples/typed_tools/main.go
@@ -4,8 +4,8 @@ import (
"context"
"fmt"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
// Define a struct for our typed arguments
diff --git a/go.mod b/go.mod
index 5c8974549..e275c8a57 100644
--- a/go.mod
+++ b/go.mod
@@ -1,4 +1,4 @@
-module github.com/mark3labs/mcp-go
+module github.com/rickey17/mcp-go
go 1.23
diff --git a/mcp/tools.go b/mcp/tools.go
index 3f3674923..ce3aa52e6 100644
--- a/mcp/tools.go
+++ b/mcp/tools.go
@@ -492,9 +492,7 @@ func (r CallToolResult) MarshalJSON() ([]byte, error) {
}
// Marshal IsError if true
- if r.IsError {
- m["isError"] = r.IsError
- }
+ m["isError"] = r.IsError
return json.Marshal(m)
}
diff --git a/mcptest/mcptest.go b/mcptest/mcptest.go
index df85753f2..4cd3c47d2 100644
--- a/mcptest/mcptest.go
+++ b/mcptest/mcptest.go
@@ -10,10 +10,10 @@ import (
"sync"
"testing"
- "github.com/mark3labs/mcp-go/client"
- "github.com/mark3labs/mcp-go/client/transport"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/client"
+ "github.com/rickey17/mcp-go/client/transport"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
// Server encapsulates an MCP server and manages resources like pipes and context.
diff --git a/mcptest/mcptest_test.go b/mcptest/mcptest_test.go
index 3e4be38e3..46120e567 100644
--- a/mcptest/mcptest_test.go
+++ b/mcptest/mcptest_test.go
@@ -6,9 +6,9 @@ import (
"strings"
"testing"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/mcptest"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/mcptest"
+ "github.com/rickey17/mcp-go/server"
)
func TestServerWithTool(t *testing.T) {
diff --git a/server/hooks.go b/server/hooks.go
index 4baa1c4e0..5bd6e112f 100644
--- a/server/hooks.go
+++ b/server/hooks.go
@@ -5,7 +5,7 @@ package server
import (
"context"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/mcp"
)
// OnRegisterSessionHookFunc is a hook that will be called when a new session is registered.
diff --git a/server/inprocess_session.go b/server/inprocess_session.go
index daaf28a5c..97491d0a4 100644
--- a/server/inprocess_session.go
+++ b/server/inprocess_session.go
@@ -7,7 +7,7 @@ import (
"sync/atomic"
"time"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/mcp"
)
// SamplingHandler defines the interface for handling sampling requests from servers.
diff --git a/server/internal/gen/hooks.go.tmpl b/server/internal/gen/hooks.go.tmpl
index 64274bacc..1cbd9cabb 100644
--- a/server/internal/gen/hooks.go.tmpl
+++ b/server/internal/gen/hooks.go.tmpl
@@ -8,7 +8,7 @@ import (
"errors"
"fmt"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/mcp"
)
// OnRegisterSessionHookFunc is a hook that will be called when a new session is registered.
diff --git a/server/internal/gen/request_handler.go.tmpl b/server/internal/gen/request_handler.go.tmpl
index 70600f3d8..b7f960ac6 100644
--- a/server/internal/gen/request_handler.go.tmpl
+++ b/server/internal/gen/request_handler.go.tmpl
@@ -8,7 +8,7 @@ import (
"errors"
"fmt"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/mcp"
)
// HandleMessage processes an incoming JSON-RPC message and returns an appropriate response
diff --git a/server/request_handler.go b/server/request_handler.go
index b9175dc4e..583550a51 100644
--- a/server/request_handler.go
+++ b/server/request_handler.go
@@ -8,7 +8,7 @@ import (
"fmt"
"net/http"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/mcp"
)
// HandleMessage processes an incoming JSON-RPC message and returns an appropriate response
diff --git a/server/resource_test.go b/server/resource_test.go
index 05a3b2793..14017eb44 100644
--- a/server/resource_test.go
+++ b/server/resource_test.go
@@ -5,7 +5,7 @@ import (
"testing"
"time"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/mcp"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
diff --git a/server/sampling.go b/server/sampling.go
index 4423ccf5f..1ce7f477a 100644
--- a/server/sampling.go
+++ b/server/sampling.go
@@ -4,7 +4,7 @@ import (
"context"
"fmt"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/mcp"
)
// EnableSampling enables sampling capabilities for the server.
@@ -12,7 +12,7 @@ import (
func (s *MCPServer) EnableSampling() {
s.capabilitiesMu.Lock()
defer s.capabilitiesMu.Unlock()
-
+
enabled := true
s.capabilities.sampling = &enabled
}
diff --git a/server/sampling_test.go b/server/sampling_test.go
index fbecdd70d..cda1aad05 100644
--- a/server/sampling_test.go
+++ b/server/sampling_test.go
@@ -4,7 +4,7 @@ import (
"context"
"testing"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/mcp"
)
func TestMCPServer_RequestSampling_NoSession(t *testing.T) {
@@ -116,7 +116,7 @@ func TestMCPServer_RequestSampling_Success(t *testing.T) {
func TestMCPServer_EnableSampling_SetsCapability(t *testing.T) {
server := NewMCPServer("test", "1.0.0")
-
+
// Verify sampling capability is not set initially
ctx := context.Background()
initRequest := mcp.InitializeRequest{
@@ -129,25 +129,25 @@ func TestMCPServer_EnableSampling_SetsCapability(t *testing.T) {
Capabilities: mcp.ClientCapabilities{},
},
}
-
+
result, err := server.handleInitialize(ctx, 1, initRequest)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
-
+
if result.Capabilities.Sampling != nil {
t.Error("sampling capability should not be set before EnableSampling() is called")
}
-
+
// Enable sampling
server.EnableSampling()
-
+
// Verify sampling capability is now set
result, err = server.handleInitialize(ctx, 2, initRequest)
if err != nil {
t.Fatalf("unexpected error after EnableSampling(): %v", err)
}
-
+
if result.Capabilities.Sampling == nil {
t.Error("sampling capability should be set after EnableSampling() is called")
}
diff --git a/server/server.go b/server/server.go
index 366bf6611..0d5e0177c 100644
--- a/server/server.go
+++ b/server/server.go
@@ -10,7 +10,7 @@ import (
"sort"
"sync"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/mcp"
)
// resourceEntry holds both a resource and its handler
diff --git a/server/server_race_test.go b/server/server_race_test.go
index 4e0be43a8..cbf2ef9d2 100644
--- a/server/server_race_test.go
+++ b/server/server_race_test.go
@@ -7,7 +7,7 @@ import (
"testing"
"time"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/mcp"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
diff --git a/server/server_test.go b/server/server_test.go
index c4d6d4c00..69ecf8c04 100644
--- a/server/server_test.go
+++ b/server/server_test.go
@@ -12,7 +12,7 @@ import (
"testing"
"time"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/mcp"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
diff --git a/server/session.go b/server/session.go
index 11ee8a2f1..2dc75b5ba 100644
--- a/server/session.go
+++ b/server/session.go
@@ -4,7 +4,7 @@ import (
"context"
"fmt"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/mcp"
)
// ClientSession represents an active session that can be used by MCPServer to interact with client.
diff --git a/server/session_test.go b/server/session_test.go
index 04334487b..35620efc9 100644
--- a/server/session_test.go
+++ b/server/session_test.go
@@ -12,7 +12,7 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/mcp"
)
// sessionTestClient implements the basic ClientSession interface for testing
diff --git a/server/sse.go b/server/sse.go
index 9c9766cf3..64d0cd209 100644
--- a/server/sse.go
+++ b/server/sse.go
@@ -16,7 +16,7 @@ import (
"github.com/google/uuid"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/mcp"
)
// sseSession represents an active SSE connection.
diff --git a/server/sse_test.go b/server/sse_test.go
index de8e29d33..069e8159b 100644
--- a/server/sse_test.go
+++ b/server/sse_test.go
@@ -15,7 +15,7 @@ import (
"testing"
"time"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/mcp"
"github.com/stretchr/testify/require"
)
diff --git a/server/stdio.go b/server/stdio.go
index 8c270e18b..df5ebdd6b 100644
--- a/server/stdio.go
+++ b/server/stdio.go
@@ -13,7 +13,7 @@ import (
"sync/atomic"
"syscall"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/mcp"
)
// StdioContextFunc is a function that takes an existing context and returns
diff --git a/server/stdio_test.go b/server/stdio_test.go
index 8fb542a80..a35ecf230 100644
--- a/server/stdio_test.go
+++ b/server/stdio_test.go
@@ -12,7 +12,7 @@ import (
"testing"
"time"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/mcp"
)
func TestStdioServer(t *testing.T) {
diff --git a/server/streamable_http.go b/server/streamable_http.go
index 24ec1c95a..8e1183715 100644
--- a/server/streamable_http.go
+++ b/server/streamable_http.go
@@ -14,8 +14,8 @@ import (
"time"
"github.com/google/uuid"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/util"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/util"
)
// StreamableHTTPOption defines a function type for configuring StreamableHTTPServer
@@ -237,9 +237,9 @@ func (s *StreamableHTTPServer) handlePost(w http.ResponseWriter, r *http.Request
}
// Check if this is a sampling response (has result/error but no method)
- isSamplingResponse := jsonMessage.Method == "" && jsonMessage.ID != nil &&
+ isSamplingResponse := jsonMessage.Method == "" && jsonMessage.ID != nil &&
(jsonMessage.Result != nil || jsonMessage.Error != nil)
-
+
isInitializeRequest := jsonMessage.Method == mcp.MethodInitialize
// Handle sampling responses separately
@@ -390,7 +390,7 @@ func (s *StreamableHTTPServer) handleGet(w http.ResponseWriter, r *http.Request)
return
}
defer s.server.UnregisterSession(r.Context(), sessionID)
-
+
// Register session for sampling response delivery
s.activeSessions.Store(sessionID, session)
defer s.activeSessions.Delete(sessionID)
@@ -743,18 +743,18 @@ type streamableHttpSession struct {
logLevels *sessionLogLevelsStore
// Sampling support for bidirectional communication
- samplingRequestChan chan samplingRequestItem // server -> client sampling requests
- samplingRequests sync.Map // requestID -> pending sampling request context
- requestIDCounter atomic.Int64 // for generating unique request IDs
+ samplingRequestChan chan samplingRequestItem // server -> client sampling requests
+ samplingRequests sync.Map // requestID -> pending sampling request context
+ requestIDCounter atomic.Int64 // for generating unique request IDs
}
func newStreamableHttpSession(sessionID string, toolStore *sessionToolsStore, levels *sessionLogLevelsStore) *streamableHttpSession {
s := &streamableHttpSession{
- sessionID: sessionID,
- notificationChannel: make(chan mcp.JSONRPCNotification, 100),
- tools: toolStore,
- logLevels: levels,
- samplingRequestChan: make(chan samplingRequestItem, 10),
+ sessionID: sessionID,
+ notificationChannel: make(chan mcp.JSONRPCNotification, 100),
+ tools: toolStore,
+ logLevels: levels,
+ samplingRequestChan: make(chan samplingRequestItem, 10),
}
return s
}
@@ -810,21 +810,21 @@ var _ SessionWithStreamableHTTPConfig = (*streamableHttpSession)(nil)
func (s *streamableHttpSession) RequestSampling(ctx context.Context, request mcp.CreateMessageRequest) (*mcp.CreateMessageResult, error) {
// Generate unique request ID
requestID := s.requestIDCounter.Add(1)
-
+
// Create response channel for this specific request
responseChan := make(chan samplingResponseItem, 1)
-
+
// Create the sampling request item
samplingRequest := samplingRequestItem{
requestID: requestID,
request: request,
response: responseChan,
}
-
+
// Store the pending request
s.samplingRequests.Store(requestID, responseChan)
defer s.samplingRequests.Delete(requestID)
-
+
// Send the sampling request via the channel (non-blocking)
select {
case s.samplingRequestChan <- samplingRequest:
@@ -834,7 +834,7 @@ func (s *streamableHttpSession) RequestSampling(ctx context.Context, request mcp
default:
return nil, fmt.Errorf("sampling request queue is full - server overloaded")
}
-
+
// Wait for response or context cancellation
select {
case response := <-responseChan:
diff --git a/server/streamable_http_sampling_test.go b/server/streamable_http_sampling_test.go
index 4cf57838c..ceecdc8f0 100644
--- a/server/streamable_http_sampling_test.go
+++ b/server/streamable_http_sampling_test.go
@@ -10,7 +10,7 @@ import (
"testing"
"time"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/mcp"
)
// TestStreamableHTTPServer_SamplingBasic tests basic sampling session functionality
@@ -213,4 +213,4 @@ func TestStreamableHTTPServer_SamplingQueueFull(t *testing.T) {
if !strings.Contains(err.Error(), "queue is full") {
t.Errorf("Expected queue full error, got: %v", err)
}
-}
\ No newline at end of file
+}
diff --git a/server/streamable_http_test.go b/server/streamable_http_test.go
index 105fd18ce..ffcdeb80a 100644
--- a/server/streamable_http_test.go
+++ b/server/streamable_http_test.go
@@ -14,7 +14,7 @@ import (
"testing"
"time"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/mcp"
)
type jsonRPCResponse struct {
diff --git a/testdata/mockstdio_server.go b/testdata/mockstdio_server.go
index 30bf0c001..7abde9aa2 100644
--- a/testdata/mockstdio_server.go
+++ b/testdata/mockstdio_server.go
@@ -7,7 +7,7 @@ import (
"log/slog"
"os"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/mcp"
)
type JSONRPCRequest struct {
diff --git a/www/docs/pages/clients/advanced-sampling.mdx b/www/docs/pages/clients/advanced-sampling.mdx
index 81a4cc9aa..fd1e78138 100644
--- a/www/docs/pages/clients/advanced-sampling.mdx
+++ b/www/docs/pages/clients/advanced-sampling.mdx
@@ -17,9 +17,9 @@ import (
"context"
"fmt"
- "github.com/mark3labs/mcp-go/client"
- "github.com/mark3labs/mcp-go/client/transport"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/client"
+ "github.com/rickey17/mcp-go/client/transport"
+ "github.com/rickey17/mcp-go/mcp"
)
type MySamplingHandler struct {
@@ -103,8 +103,8 @@ import (
"strings"
"os"
- "github.com/mark3labs/mcp-go/client"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/client"
+ "github.com/rickey17/mcp-go/mcp"
)
type MockSamplingHandler struct{}
@@ -493,5 +493,5 @@ SSE and StreamableHTTP transports do not support sampling due to their one-way o
- Learn about [server-side sampling implementation](/servers/advanced-sampling)
- Explore [client operations](/clients/operations)
-- Check out the [sampling examples](https://github.com/mark3labs/mcp-go/tree/main/examples/sampling_client)
+- Check out the [sampling examples](https://github.com/rickey17/mcp-go/tree/main/examples/sampling_client)
- See [in-process transport documentation](/transports/inprocess) for embedded scenarios
\ No newline at end of file
diff --git a/www/docs/pages/clients/basics.mdx b/www/docs/pages/clients/basics.mdx
index 30eb5623d..68325ddbd 100644
--- a/www/docs/pages/clients/basics.mdx
+++ b/www/docs/pages/clients/basics.mdx
@@ -37,8 +37,8 @@ import (
"sync"
"time"
- "github.com/mark3labs/mcp-go/client"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/client"
+ "github.com/rickey17/mcp-go/mcp"
)
func createStdioClient() (client.Client, error) {
diff --git a/www/docs/pages/clients/index.mdx b/www/docs/pages/clients/index.mdx
index fbfa19346..87266cde9 100644
--- a/www/docs/pages/clients/index.mdx
+++ b/www/docs/pages/clients/index.mdx
@@ -24,8 +24,8 @@ import (
"fmt"
"log"
- "github.com/mark3labs/mcp-go/client"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/client"
+ "github.com/rickey17/mcp-go/mcp"
)
func main() {
@@ -179,8 +179,8 @@ import (
"sync"
"time"
- "github.com/mark3labs/mcp-go/client"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/client"
+ "github.com/rickey17/mcp-go/mcp"
)
type MCPClientManager struct {
diff --git a/www/docs/pages/clients/operations.mdx b/www/docs/pages/clients/operations.mdx
index 8734486d1..af7bda0b8 100644
--- a/www/docs/pages/clients/operations.mdx
+++ b/www/docs/pages/clients/operations.mdx
@@ -21,8 +21,8 @@ import (
"sync"
"time"
- "github.com/mark3labs/mcp-go/client"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/client"
+ "github.com/rickey17/mcp-go/mcp"
)
func listResources(ctx context.Context, c client.Client) error {
@@ -925,7 +925,7 @@ Consider implementing sampling when your client:
### Basic Implementation
```go
-import "github.com/mark3labs/mcp-go/client"
+import "github.com/rickey17/mcp-go/client"
// Implement the SamplingHandler interface
type MySamplingHandler struct {
diff --git a/www/docs/pages/clients/transports.mdx b/www/docs/pages/clients/transports.mdx
index 1a2e6ddcf..bd3fbd9b5 100644
--- a/www/docs/pages/clients/transports.mdx
+++ b/www/docs/pages/clients/transports.mdx
@@ -33,9 +33,9 @@ import (
"sync"
"time"
- "github.com/mark3labs/mcp-go/client"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/client"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
func createStdioClient() {
diff --git a/www/docs/pages/getting-started.mdx b/www/docs/pages/getting-started.mdx
index 9a130e48b..1a49fe1fe 100644
--- a/www/docs/pages/getting-started.mdx
+++ b/www/docs/pages/getting-started.mdx
@@ -27,7 +27,7 @@ MCP-Go is designed to make building MCP servers in Go fast, simple, and complete
Add MCP-Go to your Go project:
```bash
-go get github.com/mark3labs/mcp-go
+go get github.com/rickey17/mcp-go
```
MCP-Go makes it easy to build Model Context Protocol (MCP) servers in Go. This guide will help you create your first MCP server in just a few minutes.
@@ -43,8 +43,8 @@ import (
"context"
"fmt"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
func main() {
@@ -155,6 +155,6 @@ MCP-Go supports multiple transport methods:
## Need Help?
-- Check out the [examples](https://github.com/mark3labs/mcp-go/tree/main/examples) for more complex use cases
+- Check out the [examples](https://github.com/rickey17/mcp-go/tree/main/examples) for more complex use cases
- Join the discussion on [Discord](https://discord.gg/RqSS2NQVsY)
-- Read the full documentation in the [README](https://github.com/mark3labs/mcp-go/blob/main/README.md)
\ No newline at end of file
+- Read the full documentation in the [README](https://github.com/rickey17/mcp-go/blob/main/README.md)
\ No newline at end of file
diff --git a/www/docs/pages/index.mdx b/www/docs/pages/index.mdx
index 3e3049f0c..063e93899 100644
--- a/www/docs/pages/index.mdx
+++ b/www/docs/pages/index.mdx
@@ -12,6 +12,6 @@ import { HomePage } from 'vocs/components'
Get started
- GitHub
+ GitHub
\ No newline at end of file
diff --git a/www/docs/pages/quick-start.mdx b/www/docs/pages/quick-start.mdx
index d805c0f3a..79b7d65c8 100644
--- a/www/docs/pages/quick-start.mdx
+++ b/www/docs/pages/quick-start.mdx
@@ -13,8 +13,8 @@ import (
"context"
"fmt"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
func main() {
@@ -74,7 +74,7 @@ Save this as `hello-server/main.go` and run:
```bash
cd hello-server
go mod init hello-server
-go get github.com/mark3labs/mcp-go
+go get github.com/rickey17/mcp-go
go run main.go
```
@@ -131,9 +131,9 @@ import (
"log"
"time"
- "github.com/mark3labs/mcp-go/client"
- "github.com/mark3labs/mcp-go/client/transport"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/client"
+ "github.com/rickey17/mcp-go/client/transport"
+ "github.com/rickey17/mcp-go/mcp"
)
func main() {
@@ -218,9 +218,9 @@ import (
"log"
"time"
- "github.com/mark3labs/mcp-go/client"
- "github.com/mark3labs/mcp-go/client/transport"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/client"
+ "github.com/rickey17/mcp-go/client/transport"
+ "github.com/rickey17/mcp-go/mcp"
)
func main() {
diff --git a/www/docs/pages/servers/advanced-sampling.mdx b/www/docs/pages/servers/advanced-sampling.mdx
index 1bc05eb6e..06fbdea40 100644
--- a/www/docs/pages/servers/advanced-sampling.mdx
+++ b/www/docs/pages/servers/advanced-sampling.mdx
@@ -15,8 +15,8 @@ package main
import (
"context"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
func main() {
@@ -248,8 +248,8 @@ import (
"log"
"time"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
func main() {
@@ -395,5 +395,5 @@ For these transports, consider implementing LLM integration directly in your too
- Learn about [client-side sampling implementation](/clients/advanced-sampling)
- Explore [advanced server features](/servers/advanced)
-- Check out the [sampling examples](https://github.com/mark3labs/mcp-go/tree/main/examples/sampling_server)
+- Check out the [sampling examples](https://github.com/rickey17/mcp-go/tree/main/examples/sampling_server)
- See [in-process sampling documentation](/transports/inprocess#sampling-support) for embedded scenarios
\ No newline at end of file
diff --git a/www/docs/pages/servers/advanced.mdx b/www/docs/pages/servers/advanced.mdx
index 990599b05..c8ca70e6a 100644
--- a/www/docs/pages/servers/advanced.mdx
+++ b/www/docs/pages/servers/advanced.mdx
@@ -17,8 +17,8 @@ import (
"fmt"
"time"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
// Define input and output types
@@ -830,8 +830,8 @@ import (
"context"
"fmt"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
func main() {
diff --git a/www/docs/pages/servers/basics.mdx b/www/docs/pages/servers/basics.mdx
index 7b33f33ce..84ab3cd37 100644
--- a/www/docs/pages/servers/basics.mdx
+++ b/www/docs/pages/servers/basics.mdx
@@ -12,7 +12,7 @@ The foundation of any MCP server is the `NewMCPServer()` function. This creates
package main
import (
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/server"
)
func main() {
diff --git a/www/docs/pages/servers/index.mdx b/www/docs/pages/servers/index.mdx
index d0983d13a..bc41299ba 100644
--- a/www/docs/pages/servers/index.mdx
+++ b/www/docs/pages/servers/index.mdx
@@ -27,8 +27,8 @@ import (
"fmt"
"time"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
var start time.Time
diff --git a/www/docs/pages/servers/prompts.mdx b/www/docs/pages/servers/prompts.mdx
index f1801b548..40948954e 100644
--- a/www/docs/pages/servers/prompts.mdx
+++ b/www/docs/pages/servers/prompts.mdx
@@ -32,8 +32,8 @@ import (
"context"
"fmt"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
func main() {
diff --git a/www/docs/pages/servers/resources.mdx b/www/docs/pages/servers/resources.mdx
index 5950f2b25..4f8034d46 100644
--- a/www/docs/pages/servers/resources.mdx
+++ b/www/docs/pages/servers/resources.mdx
@@ -174,8 +174,8 @@ import (
"encoding/json"
"fmt"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
// Database table resource
diff --git a/www/docs/pages/transports/http.mdx b/www/docs/pages/transports/http.mdx
index 9d7e308bc..2a264e75c 100644
--- a/www/docs/pages/transports/http.mdx
+++ b/www/docs/pages/transports/http.mdx
@@ -36,8 +36,8 @@ import (
"strings"
"time"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
func main() {
diff --git a/www/docs/pages/transports/index.mdx b/www/docs/pages/transports/index.mdx
index e8ec5eae4..47db6017c 100644
--- a/www/docs/pages/transports/index.mdx
+++ b/www/docs/pages/transports/index.mdx
@@ -33,9 +33,9 @@ import (
"log"
"os"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
- "github.com/mark3labs/mcp-go/client"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
+ "github.com/rickey17/mcp-go/client"
)
func main() {
diff --git a/www/docs/pages/transports/inprocess.mdx b/www/docs/pages/transports/inprocess.mdx
index e4b2c29b7..71cbe6029 100644
--- a/www/docs/pages/transports/inprocess.mdx
+++ b/www/docs/pages/transports/inprocess.mdx
@@ -29,9 +29,9 @@ import (
"fmt"
"log"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
- "github.com/mark3labs/mcp-go/client"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
+ "github.com/rickey17/mcp-go/client"
)
func main() {
@@ -285,9 +285,9 @@ import (
"fmt"
"log"
- "github.com/mark3labs/mcp-go/client"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/client"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
// MockSamplingHandler implements client.SamplingHandler for demonstration
diff --git a/www/docs/pages/transports/sse.mdx b/www/docs/pages/transports/sse.mdx
index 81fabba43..1f0876d53 100644
--- a/www/docs/pages/transports/sse.mdx
+++ b/www/docs/pages/transports/sse.mdx
@@ -32,8 +32,8 @@ import (
"log"
"time"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
func main() {
diff --git a/www/docs/pages/transports/stdio.mdx b/www/docs/pages/transports/stdio.mdx
index 3f609690f..1e9dd4732 100644
--- a/www/docs/pages/transports/stdio.mdx
+++ b/www/docs/pages/transports/stdio.mdx
@@ -33,8 +33,8 @@ import (
"path/filepath"
"strings"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
func main() {
@@ -199,8 +199,8 @@ import (
"syscall"
"time"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
+ "github.com/rickey17/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/server"
)
func main() {
@@ -316,8 +316,8 @@ import (
"time"
- "github.com/mark3labs/mcp-go/client"
- "github.com/mark3labs/mcp-go/mcp"
+ "github.com/rickey17/mcp-go/client"
+ "github.com/rickey17/mcp-go/mcp"
)
func main() {
diff --git a/www/vocs.config.ts b/www/vocs.config.ts
index dc745b385..23d0cc28f 100644
--- a/www/vocs.config.ts
+++ b/www/vocs.config.ts
@@ -118,7 +118,7 @@ export default defineConfig({
socials: [
{
icon: 'github',
- link: 'https://github.com/mark3labs/mcp-go',
+ link: 'https://github.com/rickey17/mcp-go',
},
],
})