Gopher Mcp Python — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Gopher Mcp Python (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Python SDK for gopher-mcp-python, providing AI agent orchestration with native C++ performance through ctypes FFI bindings.
git clone https://github.com/GopherSecurity/gopher-mcp-python.git
cd gopher-mcp-python./build.shpip install -e .from gopher_mcp_python import GopherAgent, GopherAgentConfig
# Create configuration with API key
config = (GopherAgentConfig.builder()
.provider("AnthropicProvider")
.model("claude-3-haiku-20240307")
.api_key("your-api-key")
.build())
# Create and use agent with context manager
with GopherAgent.create(config) as agent:
response = agent.run("What time is it in Tokyo?")
print(response)from gopher_mcp_python import GopherAgent, GopherAgentConfig
# Create configuration with server config
config = (GopherAgentConfig.builder()
.provider("AnthropicProvider")
.model("claude-3-haiku-20240307")
.server_config('{"mcpServers": [...]}')
.build())
# Create agent
agent = GopherAgent.create(config)
try:
response = agent.run("What is the weather?")
print(response)
finally:
agent.dispose()from gopher_mcp_python import GopherAgent
# Create with API key (shorthand)
agent = GopherAgent.create_with_api_key(
provider="AnthropicProvider",
model="claude-3-haiku-20240307",
api_key="your-api-key"
)
# Or with server config
agent = GopherAgent.create_with_server_config(
provider="AnthropicProvider",
model="claude-3-haiku-20240307",
server_config='{"mcpServers": [...]}'
)from gopher_mcp_python import GopherAgent
with GopherAgent.create(config) as agent:
result = agent.run_detailed("What time is it?")
if result.is_success():
print(f"Response: {result.response}")
print(f"Iterations: {result.iteration_count}")
print(f"Tokens used: {result.tokens_used}")
elif result.is_timeout():
print(f"Request timed out: {result.error_message}")
else:
print(f"Error: {result.error_message}")Main class for interacting with the gopher-mcp-python native library.
#### Static Methods
GopherAgent.init() - Initialize the library (called automatically)GopherAgent.shutdown() - Shutdown the libraryGopherAgent.is_initialized() - Check if library is initializedGopherAgent.create(config) - Create an agent with configurationGopherAgent.create_with_api_key(provider, model, api_key) - Convenience methodGopherAgent.create_with_server_config(provider, model, server_config) - Convenience method#### Instance Methods
agent.run(query, timeout_ms=60000) - Run a query and get response stringagent.run_detailed(query, timeout_ms=60000) - Run a query and get AgentResultagent.dispose() - Release resourcesagent.is_disposed() - Check if agent is disposedConfiguration class with builder pattern.
config = (GopherAgentConfig.builder()
.provider("AnthropicProvider") # Required
.model("claude-3-haiku-20240307") # Required
.api_key("key") # Either api_key or server_config required
.server_config("{...}") # Either api_key or server_config required
.build())Result class with status and metadata.
result.response - Response textresult.status - AgentResultStatus enumresult.iteration_count - Number of iterationsresult.tokens_used - Tokens consumedresult.error_message - Error message (if applicable)result.is_success() - Check if successfulresult.is_error() - Check if errorresult.is_timeout() - Check if timeoutAgentError - Base exception for agent errorsApiKeyError - Invalid API keyConnectionError - Connection failedTimeoutError - Operation timed outpytestThis project uses Black for code formatting and Ruff for linting.
Format code:
black .Check formatting without modifying:
black --check .Run linter:
ruff check .Fix linting issues:
ruff check --fix ../build.sh./build.sh --cleanGOPHER_MCP_PYTHON_LIBRARY_PATH - Custom path to native libraryDEBUG - Enable debug output for library loadingSee LICENSE file for details.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.