@kya-os/mcp-i
Version:
COMING SOON:Production-ready MCP Identity with automatic registration, key rotation, and optimized performance
63 lines • 2.67 kB
JavaScript
/**
* Development Helper for MCP-I Package
*
* Provides additional developer experience improvements for local development
*/
import { MCPIdentity } from './index.js';
import { getLogger } from './logger.js';
/**
* Enhanced development experience with helpful logging and tips
*/
export async function initWithDevExperience(options = {}) {
const logger = getLogger();
// Add development mode if not specified
if (process.env.NODE_ENV === 'development' && !options.mode) {
options.mode = 'development';
logger.info('🔧 Development mode detected - agents will be created as drafts');
}
// Auto-detect MCP server name from package.json
if (!options.name && !process.env.MCP_SERVER_NAME) {
// In Next.js and other bundled environments, we can't dynamically require package.json
// Users should provide the name explicitly
options.name = 'Development MCP Server';
logger.info('💡 Tip: Provide a name in options for better agent identification');
}
// Performance tips
if (!options.storage) {
logger.info('💡 Tip: Use storage: "file" for persistent identity across restarts');
}
const identity = await MCPIdentity.init(options);
// Show useful development information
logger.info('✨ MCP Identity initialized successfully!');
logger.info(`🆔 DID: ${identity.did}`);
// Show claim URL in development
const { claimUrl } = await identity.requestEditAccess();
logger.info(`🔗 Claim your agent: ${claimUrl}`);
// Show integration tip
logger.info('💡 Your MCP server responses are now automatically signed with your agent identity');
return identity;
}
/**
* Quick agent status check for debugging
*/
export function showAgentStatus(identity) {
const logger = getLogger();
const capabilities = identity.getCapabilities();
logger.info('📊 Agent Status:');
logger.info(` DID: ${identity.did}`);
logger.info(` Conformance Level: ${capabilities.conformanceLevel}`);
logger.info(` Registry: ${capabilities.registry || 'knowthat.ai'}`);
logger.info(` Handshake Supported: ${capabilities.handshakeSupported}`);
// Show directory preferences
const directories = identity.getDirectories();
if (directories === 'none') {
logger.info('📋 Directories: Not listing on any directories');
}
else if (directories === 'verified') {
logger.info('📋 Directories: Listing on all verified directories');
}
else if (Array.isArray(directories)) {
logger.info(`📋 Directories: ${directories.join(', ')}`);
}
}
//# sourceMappingURL=dev-helper.js.map