MCP 서버를 smithery를 사용해서 사용하는게 싫었다.(굳이 왜 smithery를 사용해서 사용해야하나?)
그래서 직접 MCP 서버를 연동시킬 수 있는 방법을 찾아봤는데, 다 MCP 서버를 직접 연결 할 수 있었다..
내가 사용하려고 한 MCP 서버들은
친절히 claude에서 사용하는 방법까지 다 나와있었다.
그래서 그 친절한 방법을 적용했으나.. 자꾸 claude에서 disconnect 알림이 뜨는거였다. 그래서 재시작 몇번을 해봤는데도 동일해서.. smithery를 안쓰면 안되는건가.. 했는데, 말이 안된다고 생각이 들었다.
그래서 로그를 찾아보기로 했다. 로그가 다 기록되고 있길래 한번 봤더니 아래와 같은 로그가 떴다.
2025-07-27T10:11:19.904Z [exa] [info] Initializing server... { metadata: undefined }
2025-07-27T10:11:19.960Z [exa] [info] Using MCP server command: /Users/jden/.nvm/versions/node/v14.21.3/bin/npx with args and path: {
metadata: {
args: [ '-y', 'exa-mcp-server', [length]: 2 ],
paths: [
'/Users/jden/.nvm/versions/node/v14.21.3/bin',
'/Users/jden/.nvm/versions/node/v16.19.0/bin',
'/Users/jden/.nvm/versions/node/v16.19.1/bin',
'/Users/jden/.nvm/versions/node/v18.13.0/bin',
'/Users/jden/.nvm/versions/node/v20.11.0/bin',
'/Users/jden/.nvm/versions/node/v22.14.0/bin',
'/usr/local/bin',
'/usr/bin',
'/usr/bin',
'/bin',
'/usr/sbin',
'/sbin',
[length]: 12
]
}
} %o
2025-07-27T10:11:19.962Z [exa] [info] Server started and connected successfully { metadata: undefined }
2025-07-27T10:11:19.983Z [exa] [info] Message from client: {"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"claude-ai","version":"0.1.0"}},"jsonrpc":"2.0","id":0} { metadata: undefined }
ERROR: You must supply a command.
Execute binaries from npm packages.
npx [options] <command>[@version] [command-arg]...
npx [options] [-p|--package <package>]... <command> [command-arg]...
npx [options] -c '<command-string>'
npx --shell-auto-fallback [shell]
Options:
--package, -p Package to be installed. [string]
--cache Location of the npm cache. [string]
--always-spawn Always spawn a child process to execute the command.
[boolean]
--no-install Skip installation if a package is missing. [boolean]
--userconfig Path to user npmrc. [string]
--call, -c Execute string as if inside `npm run-script`. [string]
--shell, -s Shell to execute the command with, if any.
[string] [default: false]
--shell-auto-fallback Generate shell code to use npx as the "command not
found" fallback.
[string] [choices: "", "bash", "fish", "zsh"]
--ignore-existing Ignores existing binaries in $PATH, or in the local
project. This forces npx to do a temporary install and
use the latest version. [boolean]
--quiet, -q Suppress output from npx itself. Subcommands will not
be affected. [boolean]
--npm npm binary to use for internal operations.
[string] [default:
"/Users/jden/.nvm/versions/node/v14.21.3/lib/node_modules/npm/bin/npm-cli.js"]
--node-arg, -n Extra node argument when calling a node binary.[string]
--version, -v Show version number [boolean]
--help, -h Show help [boolean]
For the full documentation, see the manual page for npx(1).
2025-07-27T10:11:20.130Z [exa] [info] Server transport closed { metadata: undefined }
2025-07-27T10:11:20.130Z [exa] [info] Client transport closed { metadata: undefined }
2025-07-27T10:11:20.130Z [exa] [info] Server transport closed unexpectedly, this is likely due to the process exiting early. If you are developing this MCP server you can add output to stderr (i.e. `console.error('...')` in JavaScript, `print('...', file=sys.stderr)` in python) and it will appear in this log. { metadata: undefined }
2025-07-27T10:11:20.130Z [exa] [error] Server disconnected. For troubleshooting guidance, please visit our [debugging documentation](<https://modelcontextprotocol.io/docs/tools/debugging>) { metadata: { context: 'connection', stack: undefined } }
2025-07-27T10:11:20.131Z [exa] [info] Client transport closed { metadata: undefined }
2025-07-27T10:21:15.439Z [exa] [info] Client transport closed { metadata: undefined }
2025-07-27T10:21:15.439Z [exa] [info] Shutting down server... { metadata: undefined }
로그를 보면
Server started and connected successfully { metadata: undefined }
서버가 시작 됐고 연결도 성공은 했다.
하지만 그 다음에 에러가 발생했는데,
ERROR: You must supply a command.
라는 에러였다. 이건 처음보는 에러여서 어떻게 대처해야할지 모르는 상황.