test-java-mcp.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #!/usr/bin/env node
  2. /**
  3. * 测试 Java MCP 服务器连接
  4. * 需要先启动 Java MCP 服务器: start-java-mcp.bat
  5. */
  6. const axios = require('axios');
  7. const MCP_SERVER_URL = 'http://localhost:8090';
  8. const API_KEY = 'drg-mcp-access-key-2026';
  9. const headers = {
  10. 'Content-Type': 'application/json',
  11. 'X-API-Key': API_KEY
  12. };
  13. async function testConnection() {
  14. console.log('===============================================');
  15. console.log('测试 Java MCP 服务器连接');
  16. console.log('===============================================');
  17. console.log('');
  18. try {
  19. // 测试 1: 检查服务器健康状态
  20. console.log('[测试 1] 检查服务器健康状态...');
  21. const healthResponse = await axios.get(`${MCP_SERVER_URL}/health`, { headers });
  22. console.log('✅ 服务器健康:', healthResponse.data);
  23. console.log('');
  24. // 测试 2: 列出可用工具
  25. console.log('[测试 2] 列出可用工具...');
  26. const toolsResponse = await axios.get(`${MCP_SERVER_URL}/mcp/tools`, { headers });
  27. console.log('✅ 可用工具:');
  28. toolsResponse.data.tools.forEach(tool => {
  29. console.log(` - ${tool.name}: ${tool.description}`);
  30. });
  31. console.log('');
  32. // 测试 3: 执行 SQL 查询
  33. console.log('[测试 3] 执行 SQL 查询...');
  34. const sqlQuery = {
  35. tool: 'execute_sql',
  36. parameters: {
  37. sql: 'SELECT TOP 5 * FROM DRG_User.UserInfo',
  38. params: []
  39. }
  40. };
  41. const sqlResponse = await axios.post(`${MCP_SERVER_URL}/mcp/call`, sqlQuery, { headers });
  42. console.log('✅ SQL 查询结果:');
  43. console.log(JSON.stringify(sqlResponse.data, null, 2));
  44. console.log('');
  45. // 测试 4: 查询表数据
  46. console.log('[测试 4] 查询表数据...');
  47. const tableQuery = {
  48. tool: 'query_table',
  49. parameters: {
  50. table: 'DRG_User.UserInfo',
  51. fields: ['ID', 'UserCode', 'UserName'],
  52. limit: 5
  53. }
  54. };
  55. const tableResponse = await axios.post(`${MCP_SERVER_URL}/mcp/call`, tableQuery, { headers });
  56. console.log('✅ 表数据查询结果:');
  57. console.log(JSON.stringify(tableResponse.data, null, 2));
  58. console.log('');
  59. console.log('===============================================');
  60. console.log('✅ 所有测试通过!Java MCP 服务器工作正常');
  61. console.log('===============================================');
  62. } catch (error) {
  63. console.error('❌ 测试失败:', error.message);
  64. if (error.response) {
  65. console.error('错误详情:', error.response.data);
  66. }
  67. console.log('');
  68. console.log('请确保:');
  69. console.log(' 1. Java MCP 服务器已启动 (运行 start-java-mcp.bat)');
  70. console.log(' 2. IRIS 数据库可访问');
  71. console.log(' 3. 端口 8090 未被占用');
  72. process.exit(1);
  73. }
  74. }
  75. testConnection();