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.

라는 에러였다. 이건 처음보는 에러여서 어떻게 대처해야할지 모르는 상황.