Choose project or global scope intentionally.
Project configuration is useful when a team wants a shared server definition that belongs with the repository. Global configuration is useful for a personal tool or a server that should follow a developer across projects. The choice affects who can review, change, and inherit the connection.
Keep project configuration free of secrets. Reference environment variables or the documented credential flow, and review changes to the MCP file like any other code that can expand the tools available to an agent.
Compare local and remote setup.
Local stdio configuration starts a command on the developer's machine and can be convenient for repositories, files, and private utilities. Remote HTTP configuration centralizes the server and can support shared data, but it introduces endpoint identity, authentication, availability, and third-party data decisions.
Start with a read-only server and confirm its transport, tool list, and data boundary. Do not assume that a server's name or description tells the whole story; inspect the current client documentation and the server source or operator.
Review approvals and permissions before the first write.
Cursor can expose tools that read, create, or change external state. Review which calls require approval, which tools the project actually needs, and whether the server supports a narrower toolset or scope. A model prompt is not a substitute for a server-side permission boundary.
Use a known task to test the route, then deny an action that should stop. If the result will be used in code changes, keep the diff, command, or external record visible to a person before publication.
Use logs to explain the connection, not to collect secrets.
When a server fails, capture whether the process started, whether Cursor discovered the tools, which tool was requested, and whether the upstream system responded. Remove tokens, private source, and customer data from the report.
Cursor's MCP surface changes over time. Record the documentation date and client behavior used in the guide so readers can distinguish a configuration issue from a feature change.