Skip to main content
Glama

Solana Vault MCP

by olaxbt
__init__.py2.81 kB
""" Solana Vault MCP - Flask Application A Model Context Protocol (MCP) implementation for the Solana blockchain using Python """ import os import json from flask import Flask from flask_cors import CORS from loguru import logger import dotenv from app.utils.logger import setup_logging def create_app(test_config=None): """Create and configure the Flask application""" # Load environment variables dotenv.load_dotenv() # Configure logging setup_logging() logger.info("Starting Solana Vault MCP") # Create and configure the app app = Flask(__name__, instance_relative_config=True) # Set default configuration app.config.from_mapping( SECRET_KEY=os.environ.get("SECRET_KEY", "dev"), PORT=int(os.environ.get("PORT", 5000)), RPC_URL=os.environ.get("RPC_URL", "https://api.mainnet-beta.solana.com"), SOLANA_PRIVATE_KEY=os.environ.get("SOLANA_PRIVATE_KEY"), LOG_LEVEL=os.environ.get("LOG_LEVEL", "INFO"), RATE_LIMIT_PER_MINUTE=int(os.environ.get("RATE_LIMIT_PER_MINUTE", 100)), VERSION="1.0.0" ) # Load development configuration if available try: config_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), "config", "dev_config.json") if os.path.exists(config_path): with open(config_path, 'r') as f: config_data = json.load(f) if "version" in config_data: app.config["VERSION"] = config_data["version"] logger.info(f"Loaded dev config from {config_path}") except Exception as e: logger.warning(f"Could not load dev config: {str(e)}") # Load test config if provided if test_config is not None: app.config.from_mapping(test_config) logger.info("Test configuration loaded") # Enable CORS CORS(app) # Create instance directory if needed try: os.makedirs(app.instance_path) except OSError: pass # Register blueprints from app.routes.web import web_bp from app.routes.mcp import mcp_bp app.register_blueprint(web_bp) app.register_blueprint(mcp_bp) # Initialize Solana wallet if app.config.get("SOLANA_PRIVATE_KEY"): try: from app.services.solana_wallet import initialize_wallet initialize_wallet(app.config["SOLANA_PRIVATE_KEY"], app.config["RPC_URL"]) logger.info(f"Wallet initialized with RPC: {app.config['RPC_URL']}") except Exception as e: logger.error(f"Failed to initialize wallet: {str(e)}") else: logger.warning("No Solana private key provided. Wallet not initialized.") logger.info(f"Flask app initialized on port {app.config.get('PORT', 5000)}") return app

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/olaxbt/solana-vault-mcp'

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