Skip to main content
Glama
main.py3.01 kB
#!/usr/bin/env python3 """ Main entry point for the Frappe MCP Server. This module handles command-line arguments, version display, and server startup. """ import sys import os import argparse from pathlib import Path from dotenv import load_dotenv # Load .env file if it exists (optional for development) load_dotenv(override=False) # Add current package to path for relative imports current_dir = Path(__file__).parent sys.path.insert(0, str(current_dir)) from . import __version__ def show_version() -> None: """Display version information.""" print(__version__) def parse_args() -> argparse.Namespace: """Parse command line arguments.""" parser = argparse.ArgumentParser( description="Frappe MCP Server - Model Context Protocol server for Frappe Framework", formatter_class=argparse.RawDescriptionHelpFormatter, epilog=""" Transport Examples: frappe-mcp-server # stdio transport (default) frappe-mcp-server --transport http # HTTP transport on localhost:8069/mcp frappe-mcp-server -t http -p 9000 # HTTP transport on port 9000 frappe-mcp-server -t http --path /api # HTTP transport with custom path Environment Variables: FRAPPE_API_KEY - Frappe API key for authentication FRAPPE_API_SECRET - Frappe API secret for authentication FRAPPE_BASE_URL - Base URL of Frappe site (e.g., https://site.frappe.cloud) """ ) parser.add_argument( "--version", "-v", action="store_true", help="Show version and exit" ) parser.add_argument( "--transport", "-t", choices=["stdio", "http"], default="stdio", help="Transport protocol (default: stdio)" ) parser.add_argument( "--host", default="127.0.0.1", help="Host for HTTP transport (default: 127.0.0.1)" ) parser.add_argument( "--port", "-p", type=int, default=8069, help="Port for HTTP transport (default: 8069)" ) parser.add_argument( "--path", default="/mcp", help="Path for HTTP transport endpoint (default: /mcp)" ) return parser.parse_args() def run_server() -> None: """Initialize and run the MCP server.""" args = parse_args() # Handle version flag if args.version: show_version() sys.exit(0) print("Starting Frappe MCP server...", file=sys.stderr) print(f"Current working directory: {os.getcwd()}", file=sys.stderr) print(f"Transport: {args.transport}", file=sys.stderr) # Import server after version check to avoid loading overhead from .server import create_server, start_server server = create_server(host=args.host, port=args.port) start_server(server, transport=args.transport, host=args.host, port=args.port, path=args.path) def main() -> None: """Main entry point for console script.""" run_server() if __name__ == "__main__": run_server()

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/appliedrelevance/frappe-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server